2012-09-24 55 views
9

我见过一些关于UIImage的帖子,自动在新的iOS6中加载文件名-568.png图像,但我似乎无法在UIImageView类中重新创建它。ios6 UIImageView - 加载-568h图像

我用故事板(不是我的应用程序,只是有做一些检查),和我有一个简单的布局只是缩放到适合,在视图控制器无码的图片浏览,并且我已经确保文件名.png文件名-568h.png存在(以及[email protected]以防万一),但是当我加载它在iOS6模拟器。这一直是iOS 4和5,加载视网膜的@ 2x图像,但似乎并不适用于iOS6。有任何想法吗?

该图像恰好被称为Default.png因为它与启动图像相同,这可能是问题吗?

感谢所有帮助提前

+0

我发现这里回答: - http://stackoverflow.com/questions/12532405/images-for-iphone-5-retina-display - http://stackoverflow.com/questions/12431445/iphone -5-what-naming-convention-the-new-images-have-follow- – Thesalan

回答

32

iOS6的,因为它与@ 2倍的图像确实不会自动加载-568h。唯一的例外是默认屏幕,但比自己手动设置568h图像更重要。

我创造了一些代码使用[UIImage imageNamed:@""]方法时,以模仿为-568h图像装载行为,但是从IB我不认识路。如果你有兴趣在这样的解决方案,检查出来的http://angelolloqui.com/blog/20-iPhone5-568h-image-loading

+0

实际上,我发现如果我在IB中将图像指定为“image.png”,那么不管是什么类型的手机模拟器,它会加载正确的文件,3.5英寸视网膜[@ 2x],4英寸视网膜[-568h @ 2x]。 如果我尝试使用[UIImage imageNamed:]自己编码,那么它不起作用。 奇数。我将不得不像上面的@Angel Garcia Olloqui一样。 – PKCLsoft

+1

我试过你的代码,虽然它在模拟器中工作正常,但它不能编译为真实的设备。 #包括未能编译。 – PKCLsoft

+0

我在代码中没有得到一件事:最后返回相同的方法,不创建递归循环? –

4

通常情况下,你应该只使用568h的推出图像。如果您注意到自己在您的应用中使用了不同的图片资源以获得新的展示高度,则应该考虑您可能会让您的界面太静态。

最明显的地方人们希望使用568h的图像是背景图像。另一种方法是只有一个资产具有最大可能的维度,并使用UIView的contentMode属性正确对齐它。

但是,也许你有一些浮在顶部和底部的形象,所以contentMode并不能解决问题。无论如何,你可以认为顶部和底部的浮点数可能应该是单独的视图。

请记住,我们一直与不同高度进行应用。每当键盘弹出时,就好像屏幕缩小了一样。

+1

我不同意你的最后一句话,键盘显示在视图顶部,它不缩小在所有的视图。因为iOS可以处理@ 2x图像,而操作系统本身需要-568h来启动屏幕,所以iOS能够正确检测-568h的资源。我认为这迫使我们编写可怕的代码来处理iPhone 5的屏幕比例。 –

+0

如果你觉得苹果迫使你“编写可怕的代码”,你应该退后一步,看看你是否不必要地违反了苹果公约。在iOS中,这通常导致更多的工作,收益较低。 –

相关问题