ipad迷你视网膜错误的屏幕分辨率

时间:2014-03-05 12:05:34

标签: ios ipad retina-display ipad-mini

当我尝试读取设备的分辨率时,我无法取得好成绩。

此类代码

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

给出

1024 * 768和iPad4,5

machineName代码:

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

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

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

2 个答案:

答案 0 :(得分:3)

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

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

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

答案 1 :(得分:2)

尝试这个以点数获得屏幕分辨率......

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

CGFloat screenScale = [[UIScreen mainScreen] scale];

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

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

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

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

有关详细信息,请参阅this link