在iphone中获得屏幕分辨率

Sar*_*aya 1 iphone objective-c screen-resolution ios

嗨我需要获得屏幕宽度和高度.我用过这种方式

UIWindow* window = [UIApplication sharedApplication].keyWindow;
NSLog(@"%f",window.frame.size.width);
NSLog(@"%f",window.frame.size.height);
Run Code Online (Sandbox Code Playgroud)

问题是我有iPhone 4,但分辨率显示为480x320,这是不正确的...

Ind*_*ore 7

float scaleFactor = [[UIScreen mainScreen] scale];
CGRect screen = [[UIScreen mainScreen] bounds];
CGFloat widthInPixel = screen.size.width * scaleFactor;
CGFloat heightInPixel = screen.size.height * scaleFactor;
Run Code Online (Sandbox Code Playgroud)

关于480x320的屏幕分辨率,它是完全正确的,因为这给你逻辑大小或你可以说点数的大小为480点x 320点.

点和像素之间存在差异. Pixel是最小的显示单位.

Point像素的集合在哪里.

在iPhone 4的情况下1点= 2像素
在iPhone 3GS 1点= 1像素的情况下

请参考的文档scalebounds.

bounds:包含屏幕的边界矩形,以磅为单位.
scale:此值反映从默认逻辑坐标空间转换为此屏幕的设备坐标空间所需的比例因子.使用点测量默认逻辑坐标空间,其中一个点大约等于1/160英寸.如果设备的屏幕具有相当类似的像素密度,则比例因子通常设置为1.0,以便一个点映射到一个像素.然而,具有显着不同的像素密度的屏幕可以将该属性设置为更高的值.