我使用的资产目录包括两者的图像:2x,Retina 4 2x和3x。所有这些文件都在正确的设备中使用iPhone 4,4s => 2x,iPhone 5,5s => Retina 4 2x,iPhone 6+ => 3倍,但iPhone 6使用2倍而不是Retina 4 2倍。 有没有人遇到过这个问题?
由于
[编辑文字] 图像集是一般图像,而不是启动屏幕。无论我使用通用设备还是设备设置,无论我选择2x Retina 4是1334还是1136,iPhone 6上显示的图像都是普通2x中的图像。
我正在添加我选择的三种不同设置的屏幕截图,对于所有三种设置,结果是附加模拟器的屏幕截图
--------------- 模拟器的屏幕截图(iPhone 6): --------------- < / p>
--------------- 设备屏幕截图包括568: --------------- < / p>
--------------- 设备屏幕截图包括667 ---------------
--------------- 使用通用设置的屏幕截图 ---------------
--------------- 图像集设置的屏幕截图(设备设置&667高度图像) -------- -------
--------------- 发射台的屏幕截图 ----------------
答案 0 :(得分:3)
据我所知,您似乎希望以原始分辨率显示全屏图像。
是的,我认为这可能是一个已知问题。我不认为你可以用资产目录来做。我最终在这里做了这样的人:https://stackoverflow.com/q/25892207/342756
我的应用程序是风景,我的背景图像填充整个屏幕的本机res我只是这样称呼:
[UIImage imageForDeviceWithName:@“myBackground”];
以下是“myBackground”的文件和分辨率列表(再次说明):
我不再支持1x。这几乎涵盖了所有iOS 7和iOS 8设备。希望这会有所帮助。
干杯!
答案 1 :(得分:1)
这适用于Xcode v7.3,并在运行iOS v9.3的iPhone 4s模拟器中验证。
为了避免扩展问题,我做了以下事情:
在我的Images.xcassets中,我创建了两个图像集:
intro_screen
intro_screen_4
在intro_screen中,我收录了以下图片
1x 320x480
2x 750x1334
3x 1242x2208
在intro_screen_4中我只包含iPhone 4的图像
2x 640x960
在我的代码中,我做了以下内容:
int screenHeight = [ [ UIScreen mainScreen ] bounds ].size.height;
if(screenHeight == 480)
{
image = [UIImage imageNamed:@"intro_screen_4" ];
}
else {
image = [UIImage imageNamed:@"intro_screen" ];
}
答案 2 :(得分:0)
我认为这是资产目录中特定于设备的设置的已知问题。请改用通用设置(1x,2x和3x)。 iPhone 5,5s和6将全部使用2x,一切都会很好。