我的通用应用有两个 Storyboard。一个用于 iPhone,一个用于 iPad。许多代码都是以编程方式编码的,并且两个 Storyboard共享相同的 ViewControllers。下面是一个在 View Controller 中如何工作的示例:
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad){ iPadInUse = YES;}
else { iPadInUse = NO;}
因此,如果我有一张图片需要在两台设备上显示 - 我会编写以下内容:
if (iPadInUse == YES) { recordViewImage = @"iPadRecordPanel@2x.png"
// x and y positions to adjusted accordingly }
else { recordViewImage = @"recordingPanel@2x.png"
// // x and y positions to adjusted accordingly}
在模拟器上,一切都适用于所有设备(视网膜/非视网膜)。我拥有的唯一实际设备是 iPhone 4S(一切正常)。我在做什么可以吗,因为实际上没有从非视网膜设备加载任何非视网膜图像(所有图像后缀为 @2x.png ?? 我的应用会因此而被拒绝吗??
最佳答案
不,这不行。
在没有视网膜屏幕的设备上,将使用更多内存来加载视网膜图像。
您应该始终提供非视网膜和视网膜图像,并且永远不要直接加载 @2x
图像。 iOS 将为您加载正确的图像。
关于iphone - 仅带 .@2x 的通用应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16789561/