问: 假设我有这个脚本: export.bash #!...echo $VAR 有没有一种方法可以通过只执行 export.bash 而不 source 它获取 $VAR? 答: 不可以。 但是有几种可能的解决办法。...最明显的方法,你已经提到过,是使用 source 或 ....在调用 shell 的上下文中执行脚本: $ cat set-vars1.sh export FOO=BAR $ . set-vars1.sh $ echo $FOO BAR 另一种方法是在脚本中打印设置环境变量的命令.../set-vars2.sh)" $ echo "$FOO" BAR 在终端上执行 help export 可以查看 Bash 内置命令 export 的帮助文档: # help export export
IDEA的Mybatis插件 idea 不支持 xml 和 映射器接口之间的跳转 安装插件:Free Mybatis plugin 使用指路:https://www.jianshu.com/p/4f1c2600802c...本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
在这篇博客文章中,我将与大家分享我在学习过程中编写的JPA原生SQL查询代码。这段代码演示了如何使用JPA进行数据库查询,而无需将数据绑定到实体对象。...引言Java Persistence API(JPA)是Java EE标准的一部分,它提供了一种方便的方式,可以使用Java对象和实体与数据库交互。...然而,在某些情况下,你可能希望直接使用SQL执行复杂查询,以获得更好的控制和性能。本文将引导你通过使用JPA中的原生SQL查询来构建和执行查询,从而从数据库中检索数据。...在这种情况下,结果列表将包含具有名为depot_id的单个字段的对象。...在需要执行复杂查询且标准JPA映射结构不适用的情况下,这项知识将非常有用。欢迎进一步尝试JPA原生查询,探索各种查询选项,并优化查询以获得更好的性能。
如果您使用GLKit view和view controller,并且只在绘图方法中提交OpenGL ES命令,那么当您的应用移动到背景时,您的应用会自动正确运行。...如果您使用GLKit视图和视图控制器,则当您的应用移动到后台时,GLKViewController类会自动处理其关联视图的帧缓冲区。如果您为其他用途手动创建帧缓冲区,则应该在应用移动到背景时将其丢弃。...支持高分辨率显示 默认情况下,GLKit View的contentScaleFactor属性的值与包含它的屏幕的比例相匹配,因此将其关联的帧缓冲区配置为在显示器的全分辨率下呈现。...如果您未渲染到GLKit视图,则必须手动设置多重采样缓冲区并在呈现最终图像之前解决它们(请参阅使用多重采样来提高图像质量)。...如果您使用Core Animation图层绘制OpenGL ES内容,则应用程序仍应包含视图控制器来管理用户界面方向。 其他显示屏上展示 iOS设备可以连接到外部显示器。
使用Core Animation可以实现定制动画和细粒度的动画控制,创建复杂的、支持动画和变换的layered 2D视图。...在 iOS 中 每一个视图都对应Core Animation的一个层对象,与视图一样,层之间也组织为层关系树。一个层捕获视图内容为一个被图像硬件容易操作的位图。...在多数应用中层作为管理视图的方式使用,但也可以创建独立的层到一个层关系树中来显示视图不够支持的显示内容。 OpenGL ES的内容也可以与Core Animation内容进行集成。...GLKit 可以采用不同的方式使用OpenGL ES以便呈现OpenGL ES内容到不同的目标:GLKit和CAEAGLLayer。...为了创建全屏幕的视图或使OpenGL ES内容与UIKit视图集成,可以使用GLKit。在使用GLKit时,GLKit提供的类GLKView类本身实现呈现目标及创建和维护一个framebuffer。
您可以使用视图的可绘制属性来控制这些对象的属性,如下所示。...重要提示:为获得最佳效果,请选择您的应用可以始终实现的帧速率。平滑一致的帧速率产生比不规律变化的帧速率更令人愉快的用户体验。...您可以使用托管使用不同iOS子系统(例如UIKit,Quartz 2D和OpenGL ES)呈现的内容的图层来组合应用的用户界面或其他可视化显示。...按需渲染或动画循环渲染 在渲染到Core Animation层时,您必须选择何时绘制OpenGL ES内容,就像使用GLKit视图和视图控制器进行绘制时一样。...注意:为获得最佳效果,请选择您的应用可以始终实现的帧速率。 平滑一致的帧速率产生比不规律变化的帧速率更令人愉快的用户体验。
开篇之前附上GLKit的官方文档GLKit GLKit概述 GLKit GLkit是苹果对OpenGL/openGl ES的一次封装,目的是为了简化苹果开发者使用成本,它的出现加快了开发者的开发速度...类似在OPenGL中出现的固定着色器的概念。但是只要是固定的就会有限制,无法进行自定义编程(顶点着色器,片元着色器) GLKit包含功能: 1....GLKController 是GLKView的容器,继承自UIViewController。用于绘制视图内容的管理与呈现。 ios12以后苹果大大废弃了GLKit,使用了Metal。...但是开发者依旧可以使用。 使用GLKit视图呈现流程 通过上图可以看到,使用GLKit将一张图片绘制到屏幕需要三步: 使用GLKView进行创建和参数配置(深度、颜色缓存区)。...GLuint arrayLength; //我的理解是mip贴图数量 } 这些值在纹理读取时,通过纹理文件来获取。
使⽤数学库,背景纹理加载,预先创建的着 ⾊器效果,以及标准视图和视图控制器来实现渲染循环。...GLKit框架提供了功能和类,可以减少创建新的基于着色器的应⽤用程序所需的⼯工作量量,或者⽀持依赖早期版本的OpenGL ES或OpenGL提供的固定函数顶点或片段处理理的现有应用程序。...GLKit提供的功能: 加载纹理 提供高性能的数学运算 提供常见的着色器 提供视图及视图控制器,即GLKView和GLKViewController GLKit提供的类及接口: GLKView:使用...OpenGL ES绘制其内容的视图的默认实现。...一个连接OpenGL与原生窗口间的接口,iOS系统不支持EGL,但是有一套自己的实现,成为EAGL。 3、何为GLKit?
关于使用面向协议来封装功能的实战可以参考我上篇文章 【iOS 面向协议方式封装空白页功能】,这里就不再赘述,我们直接进入使用阶段吧。...本篇文章只有一个目的,那就是只要遵守协议,一行代码随意切换全屏~ 如果对面向协议有疑问的同学可以看下我之前的两篇文章 iOS - Swift 面向协议编程(一) iOS - Swift 面向协议编程...方法不推荐直接使用,不过当遵守协议者为UIViewController时,可以通过使用默认参数来切换屏幕方向lxf.switchFullScreen() ?...lxf_FullScreenable_3 结语 到这里相关的说明已罗列完毕,有什么不清楚的可以下载Demo看看,或者在文章下方留言提问 LXFProtocolTool 主要是通过协议的方式来方便快捷地实现一些的实用功能...如果你有什么想实现的功能也可以提出来,喜欢的就给个Star鼓励下我吧 ? ? ?,感谢支持!
每个iOS应用程序都应该能够在iPad上运行,并且可以在几种不同大小的iPhone上运行。...在某些情况下,您还可以告诉UIKit哪个ViewController定义了演示上下文,并且应该处理显示。...三、定义建议 尽量使用系统的ViewController 许多iOS框架定义了ViewController,您可以在您的应用程序中使用它。...在两个ViewController需要来回传递或传递数据的情况下,他们应该始终使用明确定义的公共接口来实现。 代理设计模式经常用于管理ViewController之间的通信。...适配修改 应用程序可以在各种iOS设备上运行,并且ViewController被设计为适应这些设备上不同大小的屏幕。
(例如在大尺寸的 iPhone 使用横屏,或者全屏 iPad 上的任一方向),而其它所有尺寸的配置使用垂直布局。...所有这些仍然使用紧凑垂直布局,它使用的空间不超过渲染其内容所需的空间。...使用布局协议 虽然我们最后已经用了非常棒的解决方案,可以在所有支持 SwiftUI 的 iOS 版本中使用,但也让我们来探索一下在 iOS 16 中引入的一些新的布局工具(在写这篇文章时,它作为...关键的区别在于(除了后者需要 iOS 16 )切换布局可以保留正在渲染的底层视图的标识,而在 HStack 和 VStack 之间切换就不会这样。...,我们首先放置 HStack 是很重要的,因为 VStack 可能总是合适的,即使在我们希望布局是横向的情况下(例如 iPad 的全屏模式)。
导航栏是半透明的,也可以添加背景色,并且必要时可以设置为隐藏。 ? 某些情况下可暂时隐藏导航栏,以提供更沉浸的体验。例如,当人们查看全屏照片时,“照片”会隐藏导航栏和其他界面元素。...如果你的APP也用到了这个功能,切记要让用户使用简单的手势(如点按)来恢复导航栏。 导航栏标题 在导航栏中显示当前视图的标题。在多数情况下,标题可以帮助人们了解他们在看什么。...Phone 使用这种方法,而Music 则使用大标题来区分内容区域。在iOS 13及更高版本中,默认情况下,大标题导航栏不包含背景材质或阴影。另外,随着页面滑动,大标题要转换为标准标题。 ?...如果在某些情况下可以使用标签,但在其他情况下则无法使用,则应用程序的界面将变得不稳定且不可预测。确保所有选项卡始终处于启用状态,并说明为什么选项卡内容不可用。...在iOS 13及更高版本中,您可以使用SF符号来表示选项卡栏项目。在所有版本的iOS中,系统API提供了一系列预设图标。当然你也可以自定义图标。
标准横幅占用屏幕的一小块区域,并且往往会始终存在屏幕中。你可以选择应该显示标准横幅的app界面并且在布局中留出放置横幅视图的空间。 所有的iOS app都可以显示标准横幅。...你可以选择是模态地显示横幅还是在一个可滚动内容的分开的页面显示。(在这里显示的例子中,app提供一个杂志阅读体验并且让用户可以在全屏横幅上翻页。)...由于这个理由,当用户期待体验的改变时使用模态展示风格是个好主意,比如在他们完成一个任务之后。 当用户在app视图间过渡时非模态地展示全屏横幅。...当你非模态地展示一个全屏横幅时(通过使用presentInView:),你可以保存你UI中的栏,这样用户就可以使用app的控制来跳过或者回到广告。...和所有横幅一样,当用户点击全屏横幅时会启动一个iAd体验,但你的app可以在合适的情况下响应横幅区域上的其他手势(比如拖拽或者滑动)。 确保使用合适的动画来显示和隐藏非模态的全屏横幅视图。
帧缓存可能有除了像素颜色渲染缓存之外的其他附加缓存(比如说深度测试),他们可以通过在glClear()函数中制定不同的参数来清除。...glVertextAttribPointer()第四个参数表示小数点固定数据是否可以被改变。 viewDidUnload在视图被卸载时候调用,可以在此删除OpenGL ES缓存。...glTexImage2D 第一个参数是GL_TEXTURE_2D 第二个参数用于指定MIP贴图的初始细节级别,如果没有使用MIP必须要是0 第三个参数是指定纹理缓存每个纹素需要保存的信息数量,对于iOS...不使用GLKit辅助,管理一个OpenGL ES深度缓存需要的步骤: 1、Generate(生成)—— 生成独一无二的标识符 2、Bind(绑定)—— 确定使用的缓存 3、Configure Storage...OpenGL ES使用一个叫做视域的几何图形来决定一个场景生成的片元是否会显示在最终的渲染结果中。
playsinline="true" webkit-playsinline="true" /*IOS播放视频会自动调用原生播放器全屏播放,这里使用这个属性让IOS内播放视频的时候使用inline...,视频的比例都是16:9,也就是高/宽约等于1.78,这里用到的测试视频也是16:9的,而且默认情况下video的object-fit属性的值是contain,也就是保持长宽比,我们先看下不做处理在iphone6...object-fit中的cover属性,没错,这个属性可以让我们的视频等比例缩放,如果宽高不匹配会对处理对象做裁剪操作,来我们看一下现在在微信里面的效果: ?...,因为video是在最上一级的,但是两种方式例外,一个是微信把你们的域名加入白名单,这种可以在Android手机的video上随意放置dom元素,IOS本身没有这个限制,另一种更为通用的方式是用微信x5...,目的就是为了把视频长度拉大,让”全屏”按钮消失在视线内,实际这个值可以自己尝试修改,让后宽就是此时高的1/78倍,然后使用绝对布局去设置视频的左边距,就可以达到等比缩放的效果,同理可以理解处理宽屏手机的代码部分
CoreAnimation合成器使用OpenGL ES来尽可能高效地控制GPU、混合层和切换帧缓存。 思考:OpenGL ES的渲染结果会放到帧缓存区,如何与视图的显示联系起来? 效果展示 ?...首先,我们用一个纹理缓存来作为OpenGL ES的第一次输出的缓存区,这样我们可以得到一个纹理Texture0。 然后用Texture0作为第二次绘制的纹理,得到最后的结果。 ?...在渲染纹理Texture0的时候使用不同的视口大小,但是没有调用glviewport()。...可以在layoutSubviews方法里面删除现存的深度缓存,并创建一个新的与像素颜色渲染缓存的新尺寸相匹配的深度缓存。 ? 总结 这个demo不难,但是很考验对帧缓存的理解。...上面的弯路还有包括多个顶点数组、GLKBaseEffect和shader混用等,本来是打算用shader来实现,但是iOS卷 推荐熟练使用GLKBaseEffect,最后还是用的GLKBaseEffect
iOS 13还引入了一系列六种不透明的灰色颜色,你可以在半透明效果不佳的极少数情况下使用它们。例如:交叉或重叠元素(例如网格中的线条或条形)在不透明基础上看起来更好。...在标记按钮和其他交互元素时,请使用动作谓词,如连接、发送和添加。 避免使用听起来有点屈尊的语言。避免我们、我们的、我和我的(例如“我们的教程”和“我的训练”)。它们有时会被理解为侮辱或屈尊的词。...十、视频(Video) 系统提供的视频播放器可提供两种查看模式:全屏(纵横填充)和适合屏幕(纵横比)。默认情况下,系统根据视频的纵横比选择观看模式,用户可以在播放期间切换模式。 全屏(纵横填充)模式。...目标是在全屏设备上播放视频内容时,默认情况下是全屏模式(纵横填充)显示内容。但是,如果填充显示会导致过多的内容被裁剪,则应缩放视频以适合屏幕模式显示内容。...使用原生纵横比还可以防止视频在边到边、非全屏的环境中正确显示内容,比如iPad上的画中画模式。
iOS应用可以使用通知来让人们知道一些有趣的事情是什么时候发生的,例如: 收到一条消息 事件即将发生 有新的数据可下载了 某些状态发生了变化 在iOS8及之后的版本中,应用可以定义用户在通知中的操作。...你一定不希望用户在访问你的商店时感觉像是进入别的应用。 使用简单明了的标题和说明。最好能让用户在扫过一组项目时,可以快速发现感兴趣的内容。...你可以选择在应用的哪些页面展示标准横幅,并在给这些页面设计布局时预留出空间。 ? 所有的iOS应用都可以展示标准横幅。你可以使用ADBannerView类中的广告视图来显示标准横幅广告。...确保使用合适的动画效果来显示和隐藏非模态的全屏横幅视图。例如,杂志阅读应用可以用和杂志翻页一样的动画效果。 确保横幅广告在应用中出现的时间和位置是合理的。...用户可以通过点击它来预览文件。 ? 你可以在应用中用一个新的视图来展示文件预览,或者使用全屏模态视图。展示的形式取决于你的应用运行在什么设备上。 在iPad上使用模态视图来显示文件预览。
iOS中ImageIO框架详解与应用分析 51、Intents IntentsUI 其实我对这两个框架了解的还真的不多,以前也没有接触过,自己上网搜了一会儿大概知道了它们的用处,它们使用比较多的还是在和...52、IOKit 这个框架在Mac OS 下使用是没问题的,但是在iOS系统下不知道什么时候也就不能再导入使用了,这个也是我的确自己试了一下的,的确没法导入也看不到框架里面的具体的信息,但它存在还是有它存在的价值的...,应该是在系统层面还做了一些事,我看到有文章分析触摸事件分发机制的时候系统哟使用这个框架处理,但为什么不在iOS开发这个暂时没有答案,大概了解一下它就可以了。...53、IOSurface 这个框架也是iOS11新增的,但具体的使用案例真的是几乎没找到,我也在官网看了下对它的描述,还是没具体弄清除它是用来干什么的,官方文档对它的描述是:跨多个进程共享硬件加速缓冲区数据...官方文档 59、MediaPlay MediaPlayer 框架是 iOS 平台上一个用于音频和视频播放的高层级接口,它包含了一个你可以在应用中直接使用的默认的用户界面。
触摸层(Cocoa Touch) 为应用程序开发提供了各种常用的框架并且大部分框架与界面有关,本质上来说它负责用户在iOS设备上的触摸交互操作。...iAd.framework:包含在应用程序中显示广告的类。 MapKit.framework:包含将地图界面嵌入到应用程序的类,也可以用于查找地理编码反向坐标。...MessageUI.framework:包含撰写和排队发送电子邮件信息的界面。 UIKit.framework:包含iOS应用程序用户界面层使用的类和方法。 下面看一下这个示意图 2....媒体层(Media) 提供应用中视听方面的技术,如图形图像相关的CoreGraphics、CoreImage、GLKit、OpenGL ES、CoreText、ImageIO等等。...ImageIO.framework:包含读取或写入图像数据的类。 MediaPlayer.framework:包含显示全屏视频的接口。 OpenAL.framework:包含OpenAL接口。
领取专属 10元无门槛券
手把手带您无忧上云