MFW*_*MFW 296 objective-c uiimageview uiimage ios launch-screen
我有一个支持iOS8及更高版本的应用程序,内置Xcode 7,我使用XIB作为启动屏幕(我没有启动图像).该视图包含一个带有应用程序版本的UILabel,以及两个带有图像的UIImageViews,这两个图像都存在于Images.xcassets中:一个徽标和一个启动图像.
启动应用程序时,UILabel和徽标图像显示正确,但如果我在带有iOS9的iPad Air 2上运行应用程序,则不会显示启动图像.我已经在Air和Mini上测试过运行iOS8,以及适用于iPad 2,iPad Air和iPad Air 2的iOS9模拟器,所有这些都能正确显示图像.
我跑了一些基本的故障,看看我能想出是怎么回事,但我一直没能解决这个问题,我可以说的工作的形象而这失败的一个之间看到的唯一区别是,当我把它添加到资产...
这是我所知道的简要说明:
启动图像的UIImageView位于正确的位置,大小正确.我可以告诉这个,因为我将它的背景颜色设置为绿色只是为了确保.视图在那里,但图像不会出现.所以我假设这个观点不应该受到责备.
将启动图像的UIImageView设置为也使用徽标图像可使徽标图像显示在视图的正确位置.这也让我认为这个观点不应该受到指责.
我在启动图像视图中使用的UIImage在应用程序的其他地方使用,在其他视图中显示得很好(徽标图像也在应用程序的其他地方使用,看起来很好).所以我假设图像有效并且让它出现在其他视图中不是问题.
我已经确认xcassets文件中徽标和启动的UIImages设置是相同的.它们设置为通用,任意宽度和高度,多个比例因子,默认呈现.有一个区别 - 徽标有1x,2x和3x刻度,而初始图像只有1x和2x,但我也试过在UIView中只使用1x,1x和2x值的UIImages它们可以工作(如果它们是不久前加入了该项目).
将另一个不同大小或格式的图像(PNG和JPG)添加到我的xcassets并在UIImageView中使用该UIImage作为启动图像也无法显示.
将另一个UIImageView添加到XIB文件并为其分配已在xcassets中运行的UIImage,图像将显示在加载屏幕中.
复制和重命名用于徽标的图像文件并将其添加到项目中,然后在启动视图中使用该UIImage也无法显示.
我已经尝试清理项目,重新启动开发机器,并从Air 2中删除应用程序并重新安装它以防万一出现问题.
最后三个步骤让我相信,在项目文件的生命周期中的某个点之后添加图像存在一些问题.虽然我昨天更新到Xcode 7,但最初在Xcode 6中添加了启动图像,但几个月前添加了徽标图像(也在Xcode 6中添加).
我查看了json文件中的徽标图像和启动图像,它们看起来格式相同.我还浏览了pbxproj文件,寻找差异,我看不到任何差异.
所以我想知道是否有人知道为什么发射屏幕可能无法显示我在Air 2上特别添加的这些新图像?我一直在阅读的有关未出现的图像的其他问题似乎与启动图像或与具有关联类的XIB文件中的图像有关,这两者似乎都不相关.
Ara*_*kan 471
关闭然后再打开.
说真的,重新启动设备 - 这就是为我修复它的原因.
这是不起作用的:
较旧的观察:
就像其他人一样,它:
我记得当它停止工作时触发第一个构建是在iPhone运行时拔掉它.(不确定它是否相关.)
但是,git重置没有修复它(结合所有干净的步骤不起作用)告诉我它必须在其他地方缓存.很可能在一个.gitignored文件中?(我正在使用Git忽略文件进行Xcode项目)
对于一个UIImageView(在UIView中有三个)但不适用于其他UIImageView的一种解决方法是将图像放入.xcassets文件中.恢复到普通图像文件没有撤消修复.(真的感觉像是一个缓存错误.)
更新:请参阅顶部 - 重启设备是什么修复它.我感觉错误的位图数据正缓存在设备本身上.
雷达:http://openradar.appspot.com/23534818
gbi*_*eau 97
我在iPhone 6上遇到了完全相同的问题.
非常奇怪的事实是我能够使用我的images.xcassets中的另一个图像,它具有相同的大小,压缩,颜色空间......
我无法找到它为什么不起作用但我找到了一个解决方案:只需将您的文件放在images.xcassets之外,并在Interface Builder中使用其全名(带扩展名)
希望这有帮助!
may*_*308 33
以下操作序列为我在Xcode 7.3.1和iOS 9.3.4上解决了这个问题:
and*_*der 26
许多其他答案建议重启设备和/或重建和/或重新安装是解决方案.
虽然这些答案适用于我们中的一些人,但这些工作的原因是因为应用程序被迫"重新获得"或"重建"缓存的快照.
应用程序使用缓存快照在支持将数据加载到内存之前显示图像,包括包含故事板图像的资产目录.
@jaga的这个SO答案提供了解决方案,但不是原因,为什么在设备的启动屏幕中缺少UIImageViews(但不在模拟器中).
背景
最近我试图在我的"Launch Screen.storyboard"文件中使用自定义字体.
在阅读了@TimCamber的这个SO答案之后我无法理解的原因,这促使我做了更多的研究和测试.
我的启动屏幕故事板文件中未包含自定义字体的原因与未包含资产目录中的图像的原因相同...
该应用程序从Launch Screen Storyboard文件准备应用程序启动屏幕的纵向和横向快照,并且(当前)将其保存在您的应用程序包中:
/Library/Caches/Snapshots/<<app_bundle>>/ 和/Library/Caches/Snapshots/<<app_bundle>>/downscaled/. 在加载任何支持文件之前,此过程已完成,包括任何自定义字体和资产目录.
解
如上所述,遵循@ jaga的解决方案,所需要的只是:
Pet*_*Shm 16
我对从TestFlight安装的应用程序也有同样的看法. 删除应用程序 - >然后重新启动iPhone - >然后重新安装应用程序适合我.只是重新安装应用程序或只是重新启动设备没有帮助.
Ke *_*ang 16
我的解决方案@iOS 11.x:
.jpg图像代替.png.我认为图像文件大小很重要;.xcassets;小智 5
我在 iPad 和 iPhone 设备的 Xcode 7 中也遇到了这个确切的问题。尽管这毫无意义,但我大部分时间都能够通过不仅将图像而且将图像视图中的突出显示图像设置为我的images.xcassets 中的相同图像来绕过它。
我使用iPhone 5s设备,也遇到了这个问题.
我修复它:
删除驱动器数据
清理项目
重启Xcode
从我的设备中删除项目
重启5s.
我认为Xcode使用内存是错误的,系统可能会为Xcode分配一点内存导致Xcode绘制午餐图像失败(在我的电脑上,Xcode已经运行了几周没有关闭)
| 归档时间: |
|
| 查看次数: |
74006 次 |
| 最近记录: |