gpt4 book ai didi

ios-simulator - 模拟器 iPhone Retina 的屏幕分辨率错误

转载 作者:行者123 更新时间:2023-12-04 05:50:15 25 4
gpt4 key购买 nike

我正在尝试编写一个通用应用程序。对于不同的屏幕分辨率,显示应该略有不同。但是当我这样编码时:

- (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);
...
}

即使模拟器设置为
,我也会得到输出:w:320.000000 h:480.000000硬件->设备->iPhone (Retina)
此外,具有此分辨率的图像在模拟器中显示为全屏图像。
我知道我应该得到 w:640.000000 h:960.000000
其他人也这样吗?以及为什么/如何解决的任何想法?请参阅相关主题:here

最佳答案

UIScreen 将始终将 Retina Display 设备的分辨率报告为非 Retina Display 设备的分辨率。这允许旧代码在此类屏幕上透明地运行。但是,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;
}

iPhone 4 上的结果值为 { 640.0, 960.0 }

关于ios-simulator - 模拟器 iPhone Retina 的屏幕分辨率错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4772647/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com