苹果设备中的分辨率问题

在苹果设备的应用开发过程中,我们经常会需要处理屏幕的分辨率问题,包括普通屏幕和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中界面原点则位于左下角。

转载于:https://www.cnblogs.com/zhgq/p/6618734.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值