魏翔龙
魏翔龙
你是指APP首个页面而不是启动页是吗?我目前没有遇到过这种情况,自动修复的逻辑应该是不会影响APP页面的;它的逻辑是在安装/更新后首次打开APP时,获取到用户设置的启动图文件并生成UIView对象,遍历这个视图中的UIImage对象,检查这些UIImage的显示区域是否展示正常,如果展示正常则什么都不做,如果不正常则对UIView进行截图并写入本地路径。所以照道理应该不会影响到APP本来的页面。 麻烦你截图发我看一下。如果能提供详细的复现过程,如Gif图或视频就更好了。
暂时不能
研究过,iPad启动图和iPhone启动图差别还是挺大的;iPad启动图有三种类型。加上横屏、暗黑就有更多可能性了;计划下个版本支持。
短期内没有支持iPad的计划,原因如下: iPad和iPhone上的启动图生成规则不一样,iPhone是首次启动时会生成APP支持的所有启动图;假设APP支持横竖屏和深色模式,那么不管APP首次启动时是横屏还是竖屏、是浅色还是深色;系统都会把所有启动图生成好。但iPad不完全是这样;首先,iPad支持分屏模式、悬浮模式,分屏模式又有1/3分屏、2/3分屏,横屏状态下还多了一个1/2分屏,加上深色模式,理论上讲,iPad应该有16张启动图;我猜测是因为一次性生成这么多张启动图会明显的影响APP启动速度,据我观察发现,系统会将一些(`它认为`)常用的启动图在第1次启动时生成后,其它未生成的启动图,则在每次以这种形式启动的时候再生成,这就导致在iPad的软件中,框架无法向在iPhone那样,在启动后支持让你修改任意启动图,必须先判断系统是否生成了这个启动图,然后你才能修改它;也就是说,某些场景下的启动图,你必须先以这种场景启动一次后才能修改这个场景下的启动图。 综上所述,iPad的启动图样式非常多,如果只是图片样式多的话倒没什么关系,但是它不会一次性生成所有样式的启动图,这会增加框架的复杂度;最重要的原因是使用该框架的iPad开发者比较少,所以我暂时没有计划让它适配iPad。 **如果有很多iPad开发者需要使用的话,我会将适配iPad列入计划之中。** 透露一下,我还计划过支持 Apple TV,但它和iPad一样,不会一次性生成所有启动图,再加上使用的开发者比较少,所以计划就搁浅了。
请及时更新并使用新版本,如果问题还是存在请将问题发送到我的邮箱:`[email protected]`。
你好,我在iPhone上没有找到你说的大字模式,请问你指的是“设置”->“显示与亮度”->“文字大小”这里调整文字大小吗?我尝试将文字大小调到了最大,但是没有复现你说的问题。请你具体描述一下你遇到的问题,最好提供一下视频或详细的复现步骤。 
> @lukapool 是这里设置的,我调试时,发现启动屏获取图片方法可能会因为嵌套,获取不到图片视图 按照“设置-显示与亮度-显示(缩放显示)-更大字体”这个方式选择更大字体,确实会出现你说的问题。由于我之前从来没用过该功能所以未考虑到这方面,对你造成的困扰十分抱歉,我会尽快解决该问题。 另外,你提到 “启动屏获取图片方法可能会因为嵌套,获取不到图片视图” , 这句话我没明白你的意思?麻烦你看到了具体解释一下这句话的意思。
> 类似于这种结构:  > > 可能需要递归遍历子视图,我对框架原理还不是很了解,看是否需要递归遍历所有子视图。现在遍历只拿到了UIStackView,嵌套的图片视图拿不到的。 框架内部确实有遍历启动图的子视图的逻辑,但是没有遇到过你描述的 “只拿到了UIStackView,嵌套的图片视图拿不到的” 这种情况;另外,你遇到的关于开启大字模式后启动图问题,跟这个应该没有关系,我正在解决该问题。
> ```objc > /// 获取UIView上关于UIImage的所有位置数据。 > + (NSArray *)ll_imageInfoFromView:(UIView *)aView { > NSMutableArray *imageFrames = [NSMutableArray array]; > for (UIImageView *imageView in aView.subviews) { > if (imageView.isHidden) { continue; }...
你的问题我已经看到了,正在处理中,标题中看到你是在iPad中使用该框架,不太建议直接在iPad中使用。