ios图片裁剪 - uiimageview填充方式




UIImageView在设备上的启动屏幕中丢失图像 (20)

“我的解决方案就是确保在故事板中为UIImageView取消选中”清除图形上下文“框。只需更改它就可以为我修复它。” 没有其他解决方案适合我。 从 苹果开发者论坛 得到它

我有一个支持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文件中的图像有关,这两者似乎都不相关。


也可以1.删除项目图像2.更改图像名称3.将文件图像添加到项目中

它对我有用。


图像名称是问题所在。 重命名“启动”屏幕故事板中使用的图像名称。 确保不要使用除字母数字之外的任何字符(不要使用“_-&@”)像魅力一样为我工作..


在我的情况下,我是 图像名称
我向 [email protected] 添加了一个名为 [email protected] 的图像 - 我的一个旧的启动屏幕仅用于测试目的。 我正在iPhone X模拟器上构建,图像没有显示出来。

将名称更改为中性(MyImage.png)可以解决问题。

似乎 @2x 是问题的一部分以及 -568h 。 这对 [email protected] 设备有一定意义。


对我有用的是从模拟器菜单中选择 重置内容和设置....


将图像从 Image.xcassets中移出 并再次添加到项目中。 它对我有用。


我也在Xcode 7中使用iPad和iPhone设备遇到了这个问题。 虽然没有意义,但我能够通过将图像视图中的图像和高亮显示的图像设置为我的images.xcassets中的相同图像来大部分时间绕过它。


我使用iPhone 5s设备,也遇到了这个问题。

我修复它:

  • 删除驱动器数据

  • 清理项目

  • 重启Xcode

  • 从我的设备中删除项目

  • 重启5s。

我认为Xcode使用内存是错误的,系统可能会为Xcode分配一点内存导致Xcode绘制午餐图像失败(在我的电脑上,Xcode已经运行了几周没有关闭)


我在iPhone 6上遇到了完全相同的问题。

非常奇怪的事实是我能够使用我的images.xcassets中的另一个图像,它具有相同的大小,压缩,颜色空间......

我无法找到它为什么不起作用但我找到了一个解决方案:只需将您的文件放在images.xcassets之外,并在Interface Builder中使用其全名(带扩展名)

希望这有帮助!


我对imageView的启动画面故事板也有同样的问题。 我从项目中删除了图片的引用,我重命名了我的图像并将其添加到项目中。 一切都很完美。


我找到了一个对我有用的简单而激进的解决方案:

1 - 删除文件:LaunchScreen.storyboard并将其移至废纸篓。

2 - 产品 - >清洁

3 - 创建一个名为LaunchScreen.storyboard的新启动屏幕文件,并将图像放入其中

4 - 保存并构建

在尝试了几个小时的复杂方法后,这对我有用......似乎我的LaunchScreen.storyboard是写锁定的,无法保存,或者一个奇怪的缓存进程阻止了它。


我的解决方案@iOS 11.x:

  • 使用 .jpg 图像而不是 .png 。 我认为图像文件大小很重要;
  • (可选)将图像文件放在项目目录而不是 .xcassets ;

我经历过同样的经历。 我将图像分辨率从300像素/英寸更改为72.它对我有用。


我认为launchscreen只支持Assets.xcassets中的图像。


接下来对我有帮助:

  • 将“启动屏幕文件”更改为另一个xib
  • 运行应用程序
  • 改回xib

同样非常重要的是 :检查你的xib是否未在另一个标签中打开,这也可能导致它!


简单的解决方案是使用JPG而不是PNG。


这似乎是iOS的一个bug。 就像有时系统动画消失了。

现在我只是重新启动iPhone,它对我有用。


这太 重要了, 一定是 空的 Launch Screen File


重新启动Xcode为我做了。

什么没有做到:

  • 清理构建文件夹
  • 重新启动设备或模拟器(图像在任何一个上都不可见)

从移动设备中删除应用,然后重新启动移动设备并再次安 现在问题将得到解决





launch-screen