ios - 无法正确加载 iPhone 4"图像

标签 ios ios5

我的应用程序应该支持 iOS 5.0+ 我有背景 UIImage,它应该根据设备加载正确的图像。所以我创建了 5 张具有相应分辨率的图像。

  • img.png
  • img@2x.png
  • img-568h@2x.png
  • img~ipad.png
  • img@2x~ipad.png

我还设置了 Default-568h@2x.png 初始图像。然后我在 viewDidLoad 中检测我的应用程序正在运行和使用的设备

[bkgImageView setImage:[UIImage imageNamed:@"img.png"]];

加载合适的图像。所有分辨率都加载得很好,除了 iPhone 4"一个,它是 img-568h@2x.png。如果我明确加载这个

[bkgImageView setImage:[UIImage imageNamed:@"img-568h@2x.png"]];

比例不正确。那么如何自动或手动加载 4"视网膜图像?

最佳答案

-568h 添加到文件名的末尾不起作用。唯一支持的修饰符是 @2x~ipad~iphone-568h 似乎唯一可行的情况是启动图像,其中图像必须专门命名为 Default-568h@2x.png

您应该使用自动布局(或 struts 和 springs)来相应地调整您的屏幕。

您的问题是它会自动拉伸(stretch)已经足够大的图像。

解决方法:

如果您明确为该设备加载图像,您应该加载“image-568h”,并让它自动添加 @2x。这样一来,它就知道这是一张高分辨率图像,并且不会尝试拉伸(stretch)它。

此外,您可以设计底部有额外空间以适合 4"屏幕的图像,而不是检测设备,将图像设置为纵横比填充,并让它为较小的设备裁剪。

关于ios - 无法正确加载 iPhone 4"图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15223842/

相关文章:

ios - 尝试使用 Xcode 4.2 iOS 5 从 UIWebView 推送到详细 View

ios - -[非类型保留] : message sent to deallocated instance

iOS 10 UITabBar 设置标题后可见更多项目

iphone - 无法从 super View 中删除图像

ios - 当应用程序在前台使用传入的 OneSignal 推送通知时,如何防止警报?

ios - Xcode 7 beta 调试器不显示 Swift 代码断点处的变量值

ios - dealloc 后应用程序在 iOS5 上崩溃

iphone - iphone 5模拟器中没有按钮事件

iphone - 如何在不打开FBFriendPickerViewController iOS的情况下获取好友列表

iphone - 可定制的 iOS 消息编辑器