在iPhone App中, 在设备上运行App时,如何检测运行App的设备的屏幕分辨率?

推荐答案

CGRect screenBounds = [[UIScreen mainScreen] bounds];

这将为您提供整个屏幕的分辨率(以点为单位),因此iPhone的分辨率通常为320x480.尽管iPhone4的屏幕要大得多,但iOS的屏幕尺寸仍然是320x480,而不是640x960.这主要是因为较旧的应用程序中断.

CGFloat screenScale = [[UIScreen mainScreen] scale];

这将给你屏幕的比例.对于所有没有视网膜显示器的设备,这将返回1.0f,而视网膜显示器设备将返回2.0f,iPhone 6 Plus(视网膜HD)将返回3.0f.

现在,如果你想得到iOS设备屏幕的像素宽度和高度,你只需要做一件简单的事情.

CGSize screenSize = CGSizeMake(screenBounds.size.width * screenScale, screenBounds.size.height * screenScale);

通过乘以屏幕的比例,可以得到实际的像素分辨率.

可以读取here关于IOS中的点和像素之间的差异的良好读数.

EDIT:(SWIFT版本)

let screenBounds = UIScreen.main.bounds
let screenScale = UIScreen.main.scale
let screenSize = CGSize(width: screenBounds.size.width * screenScale, height: screenBounds.size.height * screenScale)

Ios相关问答推荐

iPhone:iOS 17.4中没有气压数据

AlGolia InstantSearch Swift Package Manager引发编译错误

多协议和类继承混乱,Swift

iOS 16 堆栈视图中按钮的奇怪动画

为什么我不能让 passthrough 科目为 combine 工作?

从远程通知启动时,iOS 应用程序加载错误

如何在通用应用程序中同时支持 iPad 和 iPhone 视网膜图形

如何使用情节提要重新排列 UITabBarController 项目?

在设备上卸载 ios 应用程序后如何在 ios 中保留 identifierForVendor?

警告:iPad:Icon-72.png:图标尺寸(0 x 0)

如何使用 swift 显示 .svg 图像

如何忽略touch 事件并将它们传递给另一个子视图的 UIControl 对象?

try 在 iOS 中处理后退导航按钮操作

Xcode:此时无法安装此应用程序.

如何在键盘上方添加工具栏?

SLComposeViewController 分享教程

如何从 UIPickerView 获取选定的值

NSURLSession:如何增加 URL 请求的超时时间?

UICollectionView flowLayout 没有正确包装单元格

在两个或多个 iPhone 应用程序之间共享数据