我想在我的 iPhone 应用程序中为我的 UIButtons、屏幕背景等提供图像。
如果我有,它是否适用于 Retina 显示屏和正常显示屏
- ButtonImage.png 和 ButtonImage@2x.png
- Background.png 和 Background@2x.png
或者,我应该做任何额外的编码以便它适用于两个显示器吗?
ButtonImage.png 在 Retina Simulator 上看起来很尴尬。所以,我应该有一个更高分辨率的图像。所以...请帮助我。
昌都
我想在我的 iPhone 应用程序中为我的 UIButtons、屏幕背景等提供图像。
如果我有,它是否适用于 Retina 显示屏和正常显示屏
或者,我应该做任何额外的编码以便它适用于两个显示器吗?
ButtonImage.png 在 Retina Simulator 上看起来很尴尬。所以,我应该有一个更高分辨率的图像。所以...请帮助我。
昌都
UIImage 的imageNamed:
方法会自动在视网膜设备上查找@2x 图像(如果它们可用);不需要额外的编码。
如果您将图像放在用户界面中的.xib
文件中,或者如果您使用+imageNamed:
类方法 for UIImage
,那么 @2x 后缀足以加载 Retina 图像。
这是正确的事情,我的意思是无论您使用或描述方式,但您需要做的第二件事是为按钮分配位置。如果您将位置分配为常量或通过声明 x,y 坐标来修复,那么它可能不起作用,因此请尝试以动态方式分配按钮的位置,以便在视网膜调用它时它将占据位置。谢谢
你无事可做,ios做选择合适的工作
简短的回答:是的,这是做你想做的事情的正确方法。 UIImage
将为您解决所有问题。
但是,不要忘记您不能只复制和重命名给定的图像(例如,Background.png
)。您需要获得与 相同Background.png
但分辨率为 4 倍的图像(即宽度加倍,高度加倍)。然后,你可以命名它Background@2x.png
,一切都会变得非常敏锐。
在这里,您必须使用简单的图像,它适用于正常显示和视网膜显示。您只需在资源包中使用 ButtonImage.png 和 Background.png 指定简单图像,在资源包中指定视网膜图像 ButtonImage@2x.png Background@2x.png。
现在您只需要在代码中指定简单的图像,当在具有视网膜屏幕分辨率的设备(即 iPhone 4 及更高版本)上运行时,将自动拍摄视网膜图像。
backgroundImageView.image = [UIImage imageNamed:@"Background.png"];
相同的代码将起作用,当 iPhone 4 带有视网膜显示时,它会自动考虑来自资源包的图像 Background@2x.png。
如果您还有其他问题,请告诉我。