iOS屏幕尺寸和分辨率了解
1、截至目前为止,主流的iOS设备屏幕有以下几种:
--------------- iPhone ---------- -------- iPad ------------
2、iOS设备屏幕分辨率:(ppi是像素密度单位【像素/英寸】,401ppi表示每英寸上有401个像素)
ppi(pixel per inch)计算,以6Plus为例:
屏幕分辨率1920 x 1080, 屏幕尺寸5.5英寸(手机屏幕对角物理线的长度),
1920 x 1920 + 1080 x 1080 = 4852800, 开根号为:2202.907...
2202.907 / 5.5 = 400.528 ppi, 大约就是401ppi
3、iOS的三种分辨率
1)、资源分辨率:资源图片的大小,单位是像素。
2)、设计分辨率:逻辑上的屏幕大小,单位是点。我们在Interface Builder设计器中的单位和程序代码中的单位都是设计分辨率中的“点”。
3)、是以像素为单位的屏幕大小,所有的应用都会渲染到这个屏幕上展示给用户。
iPhone 6 Plus和 6S Plus是最为特殊的设备,资源分辨率与屏幕分辨率的比例是1.15 : 1, 而其他的设备比例是1 : 1。不同的人群关注的分辨率也是不同的,UI设计人员主要关注的是资源分辨率,开发人员主要关注的是设计分辨率,而一般用户主要关注的屏幕分辨率。
4、获取设备屏幕信息
获取当前移动设备对象:[UIDevice currentDevice]
UIDevice类所有信息
NS_CLASS_AVAILABLE_IOS(2_0) @interface UIDevice : NSObject + (UIDevice *)currentDevice;@property(nonatomic,readonly,strong) NSString *name; // e.g. "My iPhone" @property(nonatomic,readonly,strong) NSString *model; // e.g. @"iPhone", @"iPod touch" @property(nonatomic,readonly,strong) NSString *localizedModel; // localized version of model @property(nonatomic,readonly,strong) NSString *systemName; // e.g. @"iOS" @property(nonatomic,readonly,strong) NSString *systemVersion; // e.g. @"4.0" @property(nonatomic,readonly) UIDeviceOrientation orientation __TVOS_PROHIBITED; // return current device orientation. this will return UIDeviceOrientationUnknown unless device orientation notifications are being generated. @property(nullable, nonatomic,readonly,strong) NSUUID *identifierForVendor NS_AVAILABLE_IOS(6_0); // a UUID that may be used to uniquely identify the device, same across apps from a single vendor. @property(nonatomic,readonly,getter=isGeneratingDeviceOrientationNotifications) BOOL generatesDeviceOrientationNotifications __TVOS_PROHIBITED; - (void)beginGeneratingDeviceOrientationNotifications __TVOS_PROHIBITED; // nestable - (void)endGeneratingDeviceOrientationNotifications __TVOS_PROHIBITED;@property(nonatomic,getter=isBatteryMonitoringEnabled) BOOL batteryMonitoringEnabled NS_AVAILABLE_IOS(3_0) __TVOS_PROHIBITED; // default is NO @property(nonatomic,readonly) UIDeviceBatteryState batteryState NS_AVAILABLE_IOS(3_0) __TVOS_PROHIBITED; // UIDeviceBatteryStateUnknown if monitoring disabled @property(nonatomic,readonly) float batteryLevel NS_AVAILABLE_IOS(3_0) __TVOS_PROHIBITED; // 0 .. 1.0. -1.0 if UIDeviceBatteryStateUnknown @property(nonatomic,getter=isProximityMonitoringEnabled) BOOL proximityMonitoringEnabled NS_AVAILABLE_IOS(3_0); // default is NO @property(nonatomic,readonly) BOOL proximityState NS_AVAILABLE_IOS(3_0); // always returns NO if no proximity detector @property(nonatomic,readonly,getter=isMultitaskingSupported) BOOL multitaskingSupported NS_AVAILABLE_IOS(4_0);@property(nonatomic,readonly) UIUserInterfaceIdiom userInterfaceIdiom NS_AVAILABLE_IOS(3_2);- (void)playInputClick NS_AVAILABLE_IOS(4_2); // Plays a click only if an enabling input view is on-screen and user has enabled input clicks.@end
ios移动设备类型枚举判断:
typedef NS_ENUM(NSInteger, UIUserInterfaceIdiom) {UIUserInterfaceIdiomUnspecified = -1,UIUserInterfaceIdiomPhone NS_ENUM_AVAILABLE_IOS(3_2), // iPhone and iPod touch style UIUIUserInterfaceIdiomPad NS_ENUM_AVAILABLE_IOS(3_2), // iPad style UIUIUserInterfaceIdiomTV NS_ENUM_AVAILABLE_IOS(9_0), // Apple TV style UI };
[UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPhone // 表示iPhone设备
[UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPad // 表示iPad设备
[UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomTV // 表示Apple TV设备
[UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomUnspecified // 表示未知设备
//示例:详细判断iPhone设备类型
//详细判断iPhone设备信息, 区分横屏和竖屏if ([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPhone){//获取屏幕尺寸信息CGSize screenSize = [UIScreen mainScreen].bounds.size;//竖屏情况if (screenSize.height > screenSize.width){if (screenSize.height == 568){//iPhone 5/5S/5C (iPod / iPod touch) 等设备 }else if (screenSize.height == 667){//iPone 6 / 6S 等设备 }else if (screenSize.height == 736){//iPone 6 Plus / 6S Plus 等设备 }else{//iPhone 4 / 4S 等设备 }}//横屏情况if (screenSize.width > screenSize.height){if (screenSize.width == 568){//iPhone 5/5S/5C (iPod / iPod touch) 等设备 }else if (screenSize.width == 667){//iPone 6 / 6S 等设备 }else if (screenSize.width == 736){//iPone 6 Plus / 6S Plus 等设备 }else{//iPhone 4 / 4S 等设备 }}}
//说明:在iPad和iPhone屏幕中,一般会有状态栏、标签栏、导航栏(或工具栏)以及内容视图部分,它们的尺寸也是固定的。状态栏占20点,导航栏占44点,标签栏占49点。
ppi(pixel per inch): 表示每英寸所包含的像素点数目,数值越高,屏幕能以更高密度显示图像
dpr(device pixel ratio): 设备像素比,设备像素 / 设备独立像素,表示设备独立像素到设备像素的转换关系
版权声明
作者:TDX
出处:博客园TDX的技术博客--http://www.cnblogs.com/tandaxia
您的支持是对博主最大的鼓励,感谢您的认真阅读。
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
转载于:https://www.cnblogs.com/tandaxia/p/5060123.html
iOS屏幕尺寸和分辨率了解相关推荐
- iOS 屏幕尺寸、分辨率、适配
1.iPhone尺寸规格 设备 iPhone 宽 Width 高 Height 对角线 Diagonal 逻辑分辨率(point) Scale Factor 设备分辨率(pixel) PPI 3GS ...
- ios屏幕尺寸和分辨率
iOS平台家族成员主要包括iPhone.iPod Touch和iPad,但是各类设备的分辨率各不相同,目前存在的尺寸主要有: iOS设备的尺寸多种多样,此外,屏幕的分辨率也有多种,总结如下表所示: 其 ...
- iOS 屏幕尺寸、分辨率、适配、UI规范
.iPhone尺寸规格 设备 iPhone 宽 Width 高 Height 对角线 Diagonal 逻辑分辨率(point) Scale Factor 设备分辨率(pixel) PPI 3GS 2 ...
- (0086)iOS开发之iPhone 屏幕尺寸、分辨率、ppi以及@2x@3x图
iPhone 屏幕尺寸.分辨率 苹果设备尺寸不断增加,以往的适配越来越难以满足诸多机型,势必要使用安全区域来适配所有机型 Safe Area 苹果尺寸开发文档:https://developer.ap ...
- iOS 设备的屏幕尺寸、分辨率及其屏幕边长比例详细情况
根据屏幕尺寸和分辨率,ios现在数起来有6个版本. 一,3GS:二,4s为代表:三,iphone5:四,ipad2为代表:五,ipad4为代表:六,ipad mini. 只是分辨率不一样的情况,如一二 ...
- IOS 开发 iPhone屏幕尺寸、分辨率及适配
版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 1.iPhone尺寸规格 设备 iPhone 宽 Width 高 Height 对角线 Diagonal 逻辑分辨率(point ...
- IOS 判断设备屏幕尺寸、分辨率 根据屏幕尺寸和分辨率
IOS 判断设备屏幕尺寸.分辨率 根据屏幕尺寸和分辨率,ios现在数起来有6个版本. iOS 设备现有的分辨率如下: iPhone/iPod Touch 普通屏 ...
- ios学习7_iPhone屏幕尺寸、分辨率及适配
1.iPhone尺寸规格 设备 iPhone 宽 Width 高 Height 对角线 Diagonal 逻辑分辨率(point) Scale Factor 设备分辨率(pixel) PPI 3GS ...
- iOS 【iOS iPhone屏幕尺寸、分辨率及屏幕适配】
1.iPhone尺寸规格 设备 iPhone 宽 Width 高 Height 对角线 Diagonal 逻辑分辨率(point) Scale Factor 设备分辨率(pixel) PPI 3GS ...
最新文章
- JS(内置对象,全局函数,事件,事件对象)
- 基于Spring Boot和Spring Cloud实现微服务架构学习--转
- CentOS 安装及使用 terraform 最新教程
- android区块链 钱包_区块链钱包Cashbox 开发工程师聊一聊开源
- Setting下的自定义控件LinearColorBar
- DxmCms自动过滤内容中的广告法违禁词功能
- 2411681-88-2,Thalidomide-O-PEG4-NHS ester它与胺部分反应
- 多商户商城系统功能拆解24讲-平台端分销会员
- \t\t健康生活:20个健康小细节隐藏大危害!
- python中的连乘_python连乘
- Java程序设计基础【10】
- ps入门第11天_ps渐变映射 案例:战争之殇
- proe服务器高速缓存位置,一招搞定Proe低版本打开高版本的问题 | 我爱分享网
- 深夜食堂|有些泡面说不出哪里好,但就是谁都代替不了
- 全民养猪(手机游戏 攻略)
- 调整Outlook 2010的pst文件大小
- iOS GCD(一)
- html图片自动移动代码是什么,html图片滚动代码
- mysql ibd 数据文件恢复极速恢复工具 ibd recover tool
- Mac如何在中文输入法中显示英文标点
热门文章
- Qt中的QFileDialog类的几个示范代码
- 学习《css世界》笔记之使用css实现凹凸效果
- uni-app小程序 点击页面滚动到指定位置
- [react] 说说你对windowing的了解
- React开发(186):react 父调用子组件的方法
- 前端学习(3260):js高级教程(4)instanceof
- 前端学习(3186):ant-design的button介绍按钮属性
- [css] 请说说你对vh、vw的理解以及它们的运用场景是什么?
- [css] border-radius:50%和border-radius:100%有什么区别?
- [css] 头部设置meta也可以做到自适应为啥还要用rem?