ios - iPhone 6 屏幕尺寸在模拟器上返回 375

标签 ios objective-c

我的项目有所有 iPhone iOS7、iOS8 的启动图像。

无论如何,它总是在模拟器中返回错误的屏幕宽度值:

   NSLog(@"%f",[UIScreen mainScreen].bounds.size.width);
    NSLog(@"%f",self.view.frame.size.width);

两者总是 375.0。

我错过了什么?

最佳答案

iPhone6的实际屏幕尺寸为750像素,但iOS返回的不是frame或bounds中的像素尺寸,而是点尺寸!

如果你想知道一个点有多少像素,你必须使用 [UIScreen mainScreen].scale .

对于 iPhone6plus,这更加复杂,因为它还引入了“原生音阶”。一切都被绘制成更大的图像,并缩小到 iPhone 6 实际拥有的 1920x1080 屏幕。为此,您将使用 [UIScreen mainScreen].nativeScale [小心,native scale 只在 iOS8 上可用,如果你在 iOS 上使用它,你的应用会崩溃。]

附言如果您没有使用任何启动图像(-568h@2x 除外),您将获得适用于 iPhone 6 和 6+ 的 320x568。

关于ios - iPhone 6 屏幕尺寸在模拟器上返回 375,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30952870/

相关文章:

ios - 在同一个 View Controller 中返回两个不同的自定义单元格并且没有任何部分

ios - 使用任何手势关闭 UIPopoverPresentationController,而不仅仅是点击

objective-c - Objective-C - block 代码不按顺序执行?

ios - 标题部分加粗,iOS 7

ios - Xcode UIView 没有边框颜色等成员

objective-c - 相似的代码行,截然不同的性能

ios - 如何在单 View 应用程序中将 thirdviewcontroller 弹出到 firstviewcontroller

iOS:在动画期间未调用 IBAction

ios - UITouch坐标和SKSpriteNode坐标不同

objective-c - Xcode 警告 : could not open OSO file