前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >iOS 判断设备型号、屏幕尺寸、系统版本、设备朝向

iOS 判断设备型号、屏幕尺寸、系统版本、设备朝向

作者头像
Originalee
发布于 2018-08-30 02:32:59
发布于 2018-08-30 02:32:59
1.8K00
代码可运行
举报
文章被收录于专栏:编程之旅编程之旅
运行总次数:0
代码可运行

现在的iOS开发中,因为iPhone的尺寸越来越多,有时候自动布局也很难适配出很精美的UI界面,难免有时候想根据机型来适配界面,所以在这里教大家一种很简单的来判断机型的方法。就是根据屏幕尺寸来判断。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//判断设备型号
#define UI_IS_LANDSCAPE         ([UIDevice currentDevice].orientation == UIDeviceOrientationLandscapeLeft || [UIDevice currentDevice].orientation == UIDeviceOrientationLandscapeRight)
#define UI_IS_IPAD              ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad)
#define UI_IS_IPHONE            ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone)
#define UI_IS_IPHONE4           (UI_IS_IPHONE && [[UIScreen mainScreen] bounds].size.height < 568.0)
#define UI_IS_IPHONE5           (UI_IS_IPHONE && [[UIScreen mainScreen] bounds].size.height == 568.0)
#define UI_IS_IPHONE6           (UI_IS_IPHONE && [[UIScreen mainScreen] bounds].size.height == 667.0)
#define UI_IS_IPHONE6PLUS       (UI_IS_IPHONE && [[UIScreen mainScreen] bounds].size.height == 736.0 || [[UIScreen mainScreen] bounds].size.width == 736.0) // Both orientations
#define UI_IS_IOS8_AND_HIGHER   ([[UIDevice currentDevice].systemVersion floatValue] >= 8.0)

使用方法:

1、在你喜欢的头文件或地方中加入 上面的预定义。

2、举个栗子,在代码中使用if(UI_IS_IPHONE4)

用过之后才发现真的是特别简单的。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016.04.07 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
iOS 监听设备方向旋转(iOS 9)
http://blog.csdn.net/jpcfei/article/details/8995531
半纸渊
2018/09/04
1.3K0
iOS判断手机方向改变
ios开发-判断手机反转 //监听手机方向改变事件 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(orientationChanged) name:UIDeviceOrientationDidChangeNotification object:nil]; //处理函数 -(void) orientationChanged { switch ([[UI
用户8671053
2021/10/29
1.1K0
iOS屏幕尺寸和分辨率了解
---------------  iPhone  ---------- --------  iPad ------------
tandaxia
2018/09/27
3K0
iOS屏幕尺寸和分辨率了解
iOS小知识汇总
解决插件失效的办法 defaults read /Applications Xcode.app/Contents/Info DVTPlugInCompatibilityUUID /Users/(mymac)/Library/Application Support/Developer/Shared/Xcode/Plug-ins iMac开机静音 sudo nvram SystemAudioVolume= 开机恢复声音 sudo nvram -d SystemAudioVolume iOS开发 判断各个设备型号
czjwarrior
2018/05/28
4880
iOS获取屏幕宽高、设备型号、系统版本信息介绍1、获取屏幕的宽高2、获取设备的型号3、获取系统版本
在我学习android开发的时候,觉得设备适配是件很头疼的事情,android的设备太多了,那时就很羡慕iOS开发的人不用操心适配的问题,而当我开始学习iOS开发后,iOS的屏幕也开始多种多样了起来...于是也得做适配了,sad...
Cloudox
2021/11/23
2.6K0
iOS获取屏幕宽高、设备型号、系统版本信息介绍1、获取屏幕的宽高2、获取设备的型号3、获取系统版本
iOS屏幕旋转及其基本适配方法
前段时间抽空总结了一下iOS视频播放的基本用法,发现这其中还有一个我们无法绕过的问题,那就是播放界面的旋转与适配。的确,视频播放与游戏类型的App经常会遇到这个的问题。由于至今接手的项目中不常涉及这块知识疏于总结,在搜索了一些资料后也发现都很散乱,所以决定在这里重新整理一下。
梧雨北辰
2018/04/24
9.5K1
iOS屏幕旋转及其基本适配方法
iOS开发·适配iPhone X相关的宏和方法
适配iPhone X和Xcode 9的过程中,除了与导航栏相关的问题,还有一个问题经常出现,就是UITableView相关的问题。下面两个办法可以解决多数错位的问题。
陈满iOS
2018/09/10
1.3K0
iOS开发·适配iPhone X相关的宏和方法
iOS开发中常用的宏
常用的宏 打印日志 //DEBUG 模式下打印日志,当前行 #ifdef DEBUG #define DLog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__); #else #define DLog(...) #endif //重写NSLog,Debug模式下打印日志和当前行数 #if DEBUG #define NSLog(FORMAT, ...) fp
码客说
2019/10/22
4500
编码篇-学会小用宏和条件编译
宏定义在C系开发中可以说占有举足轻重的作用。底层框架自不必说,为了编译优化和方便,以及跨平台能力,宏被大量使用,可以说底层开发离开define将寸步难行。而在更高层级进行开发时,我们会将更多的重心放在业务逻辑上,似乎对宏的使用和依赖并不多。 编译时编译器会在语义分析认定是宏后,将形参替换为实参,这个过程称为宏的展开。
進无尽
2018/09/12
7850
编码篇-学会小用宏和条件编译
IOS获取手机与屏幕属性
要获得设备型号,比如(iphone 4s, iphone5)这样的,要通过这样的办法。
用户7705674
2021/10/29
1.2K0
ios学习7_iPhone屏幕尺寸、分辨率及适配
大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说ios学习7_iPhone屏幕尺寸、分辨率及适配,希望能够帮助大家进步!!!
Java架构师必看
2022/04/24
9480
ios学习7_iPhone屏幕尺寸、分辨率及适配
Swift 宏定义与代码标记
写Objective-C的时候常常会用到各种宏定义,但是Swift中貌似没有宏的这种定义,更多的是通过全局常量或者全局函数来实现这一效果.我们只需要建立一个文件(假设为Const.swift),把想用的定义在里面,无须导入头文件什么的,就可以在全局用啦.
Originalee
2018/08/30
2.3K0
iOS 知识小集(横竖屏切换)
iOS 中横竖屏切换的功能,在开发iOS app中总能遇到。以前看过几次,感觉简单,但是没有敲过代码实现,最近又碰到了,demo尝试了几种情况,这里就做下总结。 注意
Haley_Wong
2018/08/22
4.2K1
iOS 知识小集(横竖屏切换)
IOS开发系列——设备信息专题【整理,部分原创】
iOS的APP的应用开发的过程中,有时为了bug跟踪或者获取用反馈的需要自动收集用户设备、系统信息、应用信息等等,这些信息方便开发者诊断问题,当然这些信息是用户的非隐私信息,是通过开发api可以获取到的。那么通过那些api可以获取这些信息呢,iOS的SDK中提供了UIDevice,NSBundle,NSLocale。
江中散人_Jun
2022/03/08
9450
iOS:宏定义(项目初期配置)(一)
最近需要重构项目,写个关于重构方面 1.宏定义(基本设置) //读取App的版本号 #define kAPPVersion [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"] //弱引用 #define kWeakSelf(type) __weak typeof(type) weak##type = type; //判断设备版iOS9及以上 #define ADVANCE_IOS9 [[[UI
菜菜不吃蔡
2018/12/13
1.1K0
苹果一倍图尺寸(iphone11pro屏幕尺寸)
iPhone手机屏幕尺寸一般指:物理像素,ps像素。 iPhone的app现在一般适配2倍图和3倍图。 iphont4s 是2倍图,但是你画一个粗为0.5的线,iphont4s显示不出来,iphont5s却可以看到一个像素(从截图上看到的)的线来。 识别手机机型使用的是几倍图,一般通过这个值来识别:[UIScreen mainScreen].scale。若为1就1倍图(iphone 4/iphone 4s是个例外),若为2就是2倍图,若是3就是3倍图。但是现在iphone 4/iphone 4s都是按照2倍图处理的,并且他们的屏幕截图也是640*960,说明它是2倍图。但是若你在iphone 4/iphone 4s手机上画条0.5像素的线是显示不出来的,但是在iphone 6及更高版本画一条1/([UIScreen mainScreen].scale)(就是0.5或1/3)的线是显示出来的,说明iphone 4/iphone 4s物理分辨率是1像素。 准确的倍图计算公式是:round(屏幕截图宽度/[[UIScreen mainScreen] bounds].size.width)。屏幕截图(上传苹果商店的屏幕快照或者用手机截屏得到的图片)的宽度(或高度)除以物理宽度(或高度,宽度是[[UIScreen mainScreen] bounds].size.width,高度是[[UIScreen mainScreen] bounds].size.height)的四舍五入的整数。iPhone XR的828/375=2.2.08,四舍五入值是2,它的[UIScreen mainScreen].scale也为2(FULL_WIDTH:375.000000, FULL_HEIGHT:812.000000, [UIScreen mainScreen].scale:2.000000),所以它是用2倍图。 下面是开发中用到的iphone,ipod,ipad对应的实际像素点和图片倍率: iphont4,iphone4s实际像素点: 3.5英寸屏(320/480) iphone5,iphone 5s,iphone 5se实际像素点: 4英寸屏 (320/568) iphont6,iphone7,iphone8实际像素点: 4.7英寸屏(375/667) iphont6 plus,iphone7 plus,iphone8 plus实际像素点: 5.5英寸屏 (414/736) iphontX若不设置启动图片相当于iPhone8的放大模式(375/667) ,若设置了启动图片才是他的实际像素 实际像素点: 5.8英寸屏(375/812) iPhone 12 mini实际像素点: 5.8英寸屏(375/812) ipod4实际像素点: 4英寸屏(320/568) iphontX若不设置启动图片相当于iPhone8的放大模式(375/667) ,若设置了启动图片才是他的实际像素,实际像素点: 5.4英寸屏(iPhone 12 mini)(375/812) 5.8英寸屏(iPhone X,iPhone XS,iPhone 11Pro)(375/812) 6.1英寸屏(iPhone XR,iPhone11) (414/896) 6.1英寸屏(iPhone12) (390/844) 6.5英寸屏(iPhone XS Max, iPhone 11 Pro Max, iPhone 12 Pro)(414/896) 6.7英寸屏(iPhone 12 Pro Max)(428/926) ipod4实际像素点(强制横屏模式): 4英寸屏(320/568) 只支持iPhone不支持iPad的app在iPad上运行都是2倍图,竖屏模式实际像素点:(375/667) iPad (8th generation) FULL_WIDTH:375.000000, FULL_HEIGHT:667.000000, [UIScreen mainScreen].scale:2.000000, 倍率:2.000000 iPad Air(4th generation) FULL_WIDTH:375.000000, FULL_HEIGHT:667.000000, [UIScreen mainScreen].scale:2.000000, 倍率:2.000000 iPad Pro (9.7-inch) FULL_WIDTH:375.000000, FULL_HEIGHT:667.000000, [UIScreen mainScreen].scale:2.000000, 倍率:2.000000 iPad Pro (11-inch) FULL_WIDTH:375.000000, FULL_HEIGHT:667.000000, [UIS
全栈程序员站长
2022/07/27
1.1K0
iOS 基本设备信息查询
开发中总会遇到很多需要查询设备及App信息的情况,有时候也是为了更好的用户体验或者为了bug跟踪,可能会需要获取用户的应用信息、系统信息、设备信息。这些信息的获取可以根据不同的设备或者App、系统版本来提供不同的功能或更好的用户体验,或者让开发者能更好的分析用户的问题原因。 (一)设备及App信息查询 1.获取设备名称 OC代码 NSString *deviceName = [[UIDevice currentDevice] name]; Swift代码 let deviceName = UIDevic
用户2554571
2018/07/19
1.2K0
UI篇-关于单个页面屏幕旋转要注意的问题
有时候,我们会需要在整个项目中,使某一个ViewController支持屏幕旋转,而其他的ViewController并不能自动旋转。这是一个很常见的需求,下面就屏幕旋转相关问题做个小结。
進无尽
2018/09/12
3.6K0
UI篇-关于单个页面屏幕旋转要注意的问题
iOS获取和监测设备基本信息——UIDevice的使用
下面这两个放大与距离传感器应用相关,可参考:http://my.oschina.net/u/2340880/blog/544341.
珲少
2018/08/15
6550
iOS文本尺寸自适应异步计算实现
目前市面上的非UI线程文本算高方法或多或少都有一些问题。本文通过逆向和分析UILabel的sizeThatFits方法实现来得到一个最佳的文本算高的精简方法。方法可以运行在任意线程,因此可以有效的应用在那些异步算高或者要求尺寸进行提前计算的场景中。
欧阳大哥2013
2020/07/24
1.5K0
相关推荐
iOS 监听设备方向旋转(iOS 9)
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验