苹果设备中的分辨率问题

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

时间: 2024-08-02 05:32:46

苹果设备中的分辨率问题的相关文章

Apple设备中point,磅(pt),pixel的关系与转换,以及iPhone模拟器与真机的长度关系

查阅了好多资料都没有发现有相关的详细介绍,包括苹果官方文档,也是草草带过.后来是在一个介绍Macbook打印字体的博客中看到的,受到启发. 首先说明苹果设备绘图的长度单位可以认为是point,不是磅(pt)的意思.该point是一个逻辑概念,是独立于设备的. 图1.不同分辨率屏幕显示1point 对于传统常规屏幕,1 point 映射物理屏幕1 pixel.对于Retina的高分屏,1point映射物理屏幕2 pixel.这样可以统一图形在同一种类不同型号设备上图形的大小. 所以在开发的时候,不

XE6 & IOS开发之免证书真机调试(3):生成iPA文件并安装到其它苹果设备上(有图有真相)

XE6 & IOS开发之免证书真机调试(3):生成iPA文件并安装到其它苹果设备上(有图有真相) 2014-08-27 20:51 网上能找到的关于Delphi XE系列的移动开发的相关文章甚少,本文尽量以详细的图文内容.傻瓜式的表达来告诉你想要的答案. 1.既然我们已经在真机上运行过App了,那么现在就来生成一下.--------------------------------------------------------------- 1.在虚拟机下,点一下桌面(星空图随便某个地方),在F

IOS之——快速获取苹果设备UDID(插曲)

转载请注明出处:http://blog.csdn.net/l1028386804/article/details/46956449 首先,我们需要打开网页 http://udid.iosbeta.cn/page/udid-view.html,在这个网页里面,可以用手机扫描微信,也可以用苹果设备直接打开这个网页,进去后长按"点击查询"按钮,然后会弹出提示框,点击"拷贝",再然后进入到苹果设备自带的safari 浏览器中,粘贴拷贝出来的地址,接着按照里面流程安装证书,最

安装Virtualbox Guest Additions(解决Virtualbox中Ubuntu分辨率过小)

问题:Virtualbox中Ubuntu分辨率过小,操作极其不方面. 解决:需要安装Virtualbox Guest Additions. 步骤如下: 1.下载Virtualbox Guest Additions,从这里下载 : 2. 为主机增加一个虚拟光驱 : 3. 进入系统后,点击"设备"-> "安装增加功能",就可以从刚才增加的光驱中进行挂载安装(如果没有出现这些控制菜单 ,可以通过 right ctrl+c 调出): 4.如果提示要安装相应的头文件,则

Android设备中实现Orientation Sensor(图)兼谈陀螺仪

设备中的三自由度Orientation Sensor就是一个可以识别设备相对于地面,绕x.y.z轴转动角度的感应器(自己的理解,不够严谨).智能手机,平板电脑有了它,可以实现很多好玩的应用,比如说指南针等. 我们可以用一个磁场感应器(magnetic sensor)来实现. 磁场感应器是用来测量磁场感应强度的.一个3轴的磁sensor IC可以得到当前环境下X.Y和Z方向上的磁场感应强度,对于Android中间层来说就是读取该感应器测量到的这3个值.当需要时,上报给上层应用程序.磁感应强度的单位

【转】苹果电脑怎么设置分辨率和调节字体大小

原文网址:https://jingyan.baidu.com/article/95c9d20da2a25eec4f75614c.html 在苹果电脑中,用户可能对系统的字体和分辨率的设置不太满意,就需要自己调大小了,那么mac系统怎么设置分辨率和调节字体大小呢?下午特意写了一个详细的图文教程叫大家如何分辨率和调节字体大小,接下来我就教大家怎么设置. 工具/原料 苹果电脑一台 方法/步骤 首先点击在桌面底部的dock栏,找到“系统偏好设置”.   然后在打开的系统偏好设置找到显示器选项.   进入

苹果电脑中FaceTime怎么设置介绍

不少Mac用户对这款FaceTime工具都是有一定了解的,不过还是有很多Mac用户们不知道怎么轻松对FaceTime进行设置,其实方法还是比较简单易操作,下面我们就一起来苹果电脑中FaceTime怎么设置介绍中瞧瞧吧,希望这款苹果电脑中FaceTime怎么设置介绍可以给Mac用户们带来有效的帮助. 苹果电脑中FaceTime怎么设置介绍: 1.在 Mac 上打开 FaceTime 以后,请先用我们自己的 Apple ID 来登录 FaceTime 应用,如图所示 2.接下来系统会显示与我们的 A

移动设备中页面缩放的设定

使用移动设备浏览网页的时候,会发现有的网页可以缩放,有的不可以.这是为什么呢? 这是因为网页的meta中有个属性控制的. <meta content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0" name="viewport"> 这个meta标签表示:强制让文档的宽度与设备的宽度保持1:1,并且文档最大的宽度比例是1.0,且不允许用户点击屏幕放大浏览

防止在iOS设备中的Safari将数字识别为电话号码

转:防止在iOS设备中的Safari将数字识别为电话号码 在测试中发现iPad上的Safari总会把长串数字识别为电话号码,文字变成蓝色,点击还会弹出菜单添加到通讯录. 别的地方倒也罢了,如果在用户名中出现数字(手机注册新浪微博的话用户名就是“手机用户xxxxxxxx”),版式会很恶心. 经过测试在a标签中的长串数字不会识别为电话,于是给出现用户名但没有链接的地方嵌套一个无动作的a标签,临时解决了这个问题. 但是这样增加了额外的标签,代码的语义性变得很差,而且对大段文字不能用这个方法. 今天无意