0

当我尝试读取设备的分辨率时,我无法获得好的结果。

这样的代码

 CGRect screenRect = [[UIScreen mainScreen] bounds];
     CGFloat screenWidth = screenRect.size.width;
     CGFloat screenHeight = screenRect.size.height;
     NSString* name = [self machineName];

1024*768 和 iPad4,5

机器名称代码:

#import <sys/utsname.h>
-(NSString*) machineName()
{
    struct utsname systemInfo;
    uname(&systemInfo);

    return [NSString stringWithCString:systemInfo.machine
                              encoding:NSUTF8StringEncoding];
}

我究竟做错了什么?我无法理解。必须是 2048*1536

4

2 回答 2

3

Bound 以磅为单位返回屏幕尺寸。

您需要查询CGFloat scale = [[UIScreen mainScreen] scale];

并将其乘以宽度/高度以获得像素值

于 2014-03-05T12:08:05.250 回答
2

试试这个以获得以点为单位的屏幕分辨率......

(1) 使用以下方法查找屏幕比例

CGFloat screenScale = [[UIScreen mainScreen] scale];

这将为您提供屏幕的比例。对于所有没有 Retina 显示屏的 iPhone 和 iPodTouch,将返回 1.0f,而 Retina Display 设备将返回 2.0f。

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

(2) 乘以屏幕的比例可以得到实际的像素分辨率。

CGSize screenSize = CGSizeMake([[UIScreen mainScreen] bounds].size.width * screenScale, [[UIScreen mainScreen] bounds].size.height * screenScale);

有关更多详细信息,请阅读此链接

于 2014-03-05T12:44:37.223 回答