苹果设备中的分辨率问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了苹果设备中的分辨率问题相关的知识,希望对你有一定的参考价值。

在苹果设备的应用开发过程中,我们经常会需要处理屏幕的分辨率问题,包括普通屏幕和Retain屏幕。

处理屏幕分辨率时,分为点(point)分辨率和像素(pixer)分辨率。当我们查看设备参数时,看到的一般会是像素分辨率,因为它的数值更大,看起来更高大上。接下来,我们以iPhone设备为例,来看一看如何在开发中分别处理点分辨率和像素分辨率。

首先,在Xcode中创建一个ios下的单视图应用(Single View Application),然后,在ViewController.m文件中的viewDidLoad方法中创建相关的代码。

下面的代码,会显示当前设备的点分辨率。

CGSize size = [[UIScreen mainScreen] bounds].size;
NSLog(@"Points: width(%f), height(%f)", 
    size.width, size.height);

如果测试的设备使用了Retain屏幕,那么,以上代码显示数据的会远低于标识的分辨率参数,而下面的代码则会显示完整的像素分辨率。

CGSize size = [[UIScreen mainScreen] bounds].size;
float scale = [UIScreen mainScreen].scale;
NSLog(@"Pixers: width(%f), height(%f)", 
    size.width * scale, size.height * scale);

在第二段代码中,我们使用了屏幕的scale属性,其值就是点与像素的关系。如果scale值为1,则说明设备没有使用Retain屏幕;如果大于1,则说明设备使用了Retain屏幕;如果scale属性值为3,则表示屏幕上的一个点(point)包含9个(3*3)像素(pixer)。

一般来讲,在iOS或macOS系统的界面开发中只使用点坐标就可以了,这样可以简化不少的坐标处理工作。需要注意的是,UIKit界面的原点(0,0)位于左上角,而SpriteKit中界面原点则位于左下角。

以上是关于苹果设备中的分辨率问题的主要内容,如果未能解决你的问题,请参考以下文章

屏幕尺寸适配 |代码 |斯威夫特 | iOS

黑苹果如何通过开启HIDPI来增强显示效果?

c_cpp 快速代码片段,用于在统计(阻止)/ dev / rdsk中的设备时验证fstat64和stat64的行为。

苹果电脑安装了Parallels desktop后出现故障,求高人援手。

运用@media实现网页自适应中的几个关键分辨率

当活动被破坏但我必须继续执行片段中的代码时该怎么办?