iPa*_*011 3 screen universal retina-display ios-simulator
我正在尝试编写通用应用程序.对于不同的屏幕分辨率,显示应略有不同.但是,当我这样编码:
- (void)viewDidLoad {
SCREEN_WIDTH=[[UIScreen mainScreen] applicationFrame].size.width;
SCREEN_HEIGHT=[[UIScreen mainScreen] applicationFrame].size.height;
NSLog(@"w:%f h:%f",SCREEN_WIDTH,SCREEN_HEIGHT);
...
}
Run Code Online (Sandbox Code Playgroud)
我得到输出:w:320.000000 h:480.000000即使模拟器设置为
硬件 - >设备 - > iPhone(视网膜)
此外,具有此分辨率的图像在模拟器中显示为全屏图像.
我明白我应该得到w:640.000000 h:960.000000.
对其他人来说这样吗?任何想法为什么/如何解决?请参阅相关主题:此处
UIScreen将始终将Retina显示设备的分辨率报告为非Retina显示设备的分辨率.这允许旧代码在这样的屏幕上透明地运行.但是,UIScreen公开了一个scale属性,当与屏幕边界结合使用时,可以使用该属性来确定设备的物理像素分辨率:
CGSize PhysicalPixelSizeOfScreen(UIScreen *s) {
CGSize result = s.bounds.size;
if ([s respondsToSelector: @selector(scale)]) {
CGFloat scale = s.scale;
result = CGSizeMake(result.width * scale, result.height * scale);
}
return result;
}
Run Code Online (Sandbox Code Playgroud)
iPhone 4上的结果值是{ 640.0, 960.0 }.
| 归档时间: |
|
| 查看次数: |
5064 次 |
| 最近记录: |