当我尝试读取设备的分辨率时,我无法取得好成绩。
此类代码
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
答案 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