iOS适配iPhone XS、 iPhone XS Max and iPhone XR的方法浅析
前言
Building Apps for iPhone XS, iPhone XS Max, and iPhone XR。 原视频连接 https://developer.apple.com/videos/play/tech-talks/207/
今天凌晨苹果新发布了三款手机,分别是iPhone XS,iPhone XR,iPHone X Max,其中iPhone XS的屏幕尺寸和iPhone X的是一致的,另外两款都有了新的尺寸,具体尺寸如下:
总结为以下几点:
一、老生常谈的安全区域(Safe Area)
这里着重说明了一下collectionView
竖屏展示的内容:
横屏展示内容:
解决办法:
1.如果使用storyBoard或者xib的话,需要在collectionView上,勾选Safe Area。
2.如果使用代码的话,横屏添加适配代码即可(比较简单,自行百度吧)。
二、推荐使用Auto Layout。
Apple公司已经数次提及Auto Layout在新版本的使用中,性能非常好,不过考虑国内公司目前的情况,纯用Auto Layout开发的公司少之又少,纯用storyBoard和Xib开发的公司更是少之又少。
三、新增UISplitViewController
如下图:
以前只有ipad才有的UISplitViewController,现在在
代码如下:
四、此外的一些坑
之后补充。。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对我们的支持。
相关推荐
-
iOS11和iPhoneX适配的一些坑
本文转载于:http://www.cocoachina.com/ios/20170921/20623.html 导航栏 导航栏高度的变化 iOS11之前导航栏默认高度为64pt(这里高度指statusBar + NavigationBar),iOS11之后如果设置了prefersLargeTitles = YES则为96pt,默认情况下还是64pt,但在iPhoneX上由于刘海的出现statusBar由以前的20pt变成了44pt,所以iPhoneX上高度变为88pt,如果项目里隐藏了导航栏加了
-
iOS10 适配远程推送功能实现代码
iOS10正式版发布之后,网上各种适配XCode8以及iOS10的文章满天飞.但对于iOS10适配远程推送的文章却不多.iOS10对于推送的修改还是非常大的,新增了UserNotifications Framework,今天就结合自己的项目,说一说实际适配的情况. 一.Capabilities中打开Push Notifications 开关 在XCode7中这里的开关不打卡,推送也是可以正常使用的,但是在XCode8中,这里的开关必须要打开,不然会报错: Error Domain=NSCocoa
-
解析iOS10中的极光推送消息的适配
iOS10发布后,发现项目中的极光推送接收消息异常了. 查了相关资料后才发现,iOS10中对于通知做了不少改变.同时也发现极光也很快更新了对应的SDK. 现在就把适配修改的做法分享一下,希望对有需要的童鞋有所帮助. 具体做法如下: 注意:必须先安装Xcode8.0版本. 一.添加相关的SKD,或framework文件 1.添加UserNotification.framework 2.更新jpush的SDK(最新版本:jpush-ios-2.1.9.a)https://www.jiguang.cn
-
iOS 11 下适配UITableView 问题
9月份苹果发布了IOS11和Iphone X,这一操作系统一硬件对于开发者适配上面还是造作了不少蛋疼的地方.先来看看IOS 11,这些蛋疼的需要适配的地方: 1.UIScrollView及其子类在IOS 11之前的版本UI显示完全正常,但是在IOS 11上面会显示奇葩的界面. (1)先看一下UITablevIew. 原本在VC里面的automaticallyAdjustsScrollViewInsets竟然过期了,在IOS 11下 APPLE推荐使用UIScrollView的contentIns
-
Xcode8以及iOS10适配等常见问题汇总(整理篇)
随着iOS 10的更新以及Xcdoe 8的更新出现了很多问题,今天小编抽时间把我遇到的坑和大家分享下,一起看看吧. 1.访问权权限问题 iOS 10 开始对访问用户隐私权限更加严格,如果你不设置就会直接崩溃,解决办法都是在info.plist文件添加对应的Key-Value就可以了. PS:对应的value可以自定义填写 2.Xcode 8 运行打印一堆Log的解决办法 只要在Run->Arguments->Environment Variables 添加如下key-value值即可 OS_A
-
详解iOS11、iPhone X、Xcode9 适配指南
更新iOS11后,发现有些地方需要做适配,整理后按照优先级分为以下三类: 单纯升级iOS11后造成的变化: Xcode9 打包后造成的变化: iPhoneX的适配 一.单纯升级iOS11后造成的变化 升级后,发现某个拥有tableView的界面错乱,组间距和contentInset错乱,因为iOS11中 UIViewController 的 automaticallyAdjustsScrollViewInsets 属性被废弃了,因此当tableView超出安全区域时,系统自动会调整SafeAre
-
IOS自适配利器Masonry使用指南
关于iOS布局自动iPhone6之后就是AutoLayOut,AutoLayOut固然非常好用,不过有时候我们需要在页面手动进行页面布局,VFL算是一种选择,而且VFL不复杂,理解起来很容易,实际开发中用的特别熟还好,要是第一次看估计要花点功夫才能搞定.Masonry算是VFL的简化版,用的人比较多,之前项目中用过一次,对手动写页面的开发来说算是福利. 基础知识 首先我们看一个常见的问题将一个子View放在的UIViewController的某个位置,通过设置边距来实现,效果如下: 如果通过VF
-
iOS10 适配-Xcode8问题总结及解决方案
iOS10 适配-Xcode8 问题解决: IOS开发者,系统版本的更新,必定要跟着更新,不然有些功能不知道,开发的时候对可以体验,大打折扣了. 前段时间升级了Xcode8,整体来说对OC的影响不大,但是还是跳一个坑,消耗了不少时间.这里总结下遇到的适配问题. 1.权限问题 Xcode8 访问相机.相册等需要权限的地方崩溃 解决办法: 在使用私有权限时,添加Info.plist文件中添加配置: 下面是各种key,需要哪个添哪个 NSBluetoothPeripheralUsageDescript
-
iOS开发 全机型适配解决方法
最近做项目,对于IPhone 手机机型适配很是头疼,所以整理下网上资料,记录下来,也许能帮助到正看文章的你, 今天打算跟大家聊聊最近研究的全机型适配思路. 当前我们需要适配的iPhone机型有4s.5s.6s.6Plus四种机型.它们的尺寸分别是 iphone4s {320, 480} 960*640 iphone5 5s {320, 568} 1136*640 iphone6 6s {375
-
iOS适配iPhone XS、 iPhone XS Max and iPhone XR的方法浅析
前言 Building Apps for iPhone XS, iPhone XS Max, and iPhone XR. 原视频连接 https://developer.apple.com/videos/play/tech-talks/207/ 今天凌晨苹果新发布了三款手机,分别是iPhone XS,iPhone XR,iPHone X Max,其中iPhone XS的屏幕尺寸和iPhone X的是一致的,另外两款都有了新的尺寸,具体尺寸如下: 总结为以下几点: 一.老生常谈的安全区域(Saf
-
支持Xcode10和适配iPhone XS Max、iPhone XR的方法
本文介绍了支持Xcode10和适配iPhone XS Max.iPhone XR的方法,分享给大家,具体如下, 目前我们项目已做了Xcode10(swift4.0)和新机型的适配,总结一下遇到的问题和修改的内容,希望帮助到其他人,如果您有不同的看法或遗漏,欢迎指出! 1.第三方库编译报错 如果项目里用到了Mixpanel-swift和SwiftLint,这两个在Xcode10上会报错,目前作者已提交新版本分别是2.4.5和0.27.0,更新后即可解决报错. 2.library not found
-
iOS 适配iPhone X的方法
因为iPhone X奇特的刘海存在,iOS11之后系统深化了"安全区域"概念,安全区域就是从屏幕上切除最大的矩形之外的区域. iOS11后UIScrollView新增contentInsetAdjustmentBehavior属性,默认配置UIScrollViewContentInsetAdjustmentAutomatic,效果上就是没使用安全区域.若针对具体页面需要使用安全区域,可以查看API中新增加的那些属性. /** * 适配iPhone X的安全区域 * isUse = 1
-
PHP简单判断iPhone、iPad、Android及PC设备的方法
本文实例讲述了PHP简单判断iPhone.iPad.Android及PC设备的方法.分享给大家供大家参考,具体如下: 因为工作需要我们需要知道是什么样了用户访问了我网站了,现在的移动设备种类多了,下面我们一起来看小编整理的一段PHP判断iPhone.iPad.Android.PC设备的例子. 我将使用Windows系统的设备定为PC,毕竟博客面向中国用户,大部分家用设备还是用的Windows系统. 原理是判断浏览器提交的USER AGENT,代码如下: <?php //获取USER AGENT
-
iOS表视图之下拉刷新控件功能的实现方法
下拉刷新是重新刷新表视图或列表,以便重新加载数据,这种模式广泛用于移动平台,相信大家对于此也是非常熟悉的,那么iOS是如何做到的下拉刷新呢? 在iOS 6之后,UITableViewControl添加了一个refreshControl属性,该属性保持了UIRefreshControl的一个对象指针.UIRefreshControl就是表视图实现下拉刷新提供的类,目前该类只能用于表视图界面.下面我们就来试试该控件的使用. 编写代码之前的操作类似于前面几篇文章.代码如下: #import "View
-
iOS拍照后图片自动旋转90度的完美解决方法
今天开发一个拍照获取照片的功能的时候, 发现上传之后图片会自动旋转90. 测试发现, 只要是图片大于2M, 系统就会自动翻转照片 相机拍照后直接取出来的UIimage(用UIImagePickerControllerOriginalImage取出),它本身的imageOrientation属性是3,即UIImageOrientationRight.如果这个图片直接使用则没事,但是如果对它进行裁剪.缩放等操作后,它的这个imageOrientation属性会变成0.此时这张图片用在别的地方就会发生
-
IOS 出现问题POST网络请求状态code:500的解决方法
IOS 出现问题POST网络请求状态code:500的解决方法 前言: iOS 10 用 [NSURLSession uploadTaskWithRequest:request fromData:jsondata completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error){}]; 进行post网络请求时 出现 500 错误 出现500 的错误
-
IOS中微信小程序播放缓存的音频文件的方法
很多时候我们都想把数据预先缓存到本地,节省带宽.但是最近在处理微信小程序播放缓存到本地的音频文件的时候,遇到一些小问题,然后对于安卓和IOS需要采用不同的播放策略. 首先,如果哪怕用audio标签来播放在线的音频文件,假如服务端没有实现断点续传,IOS是无法播放的,这个需要注意. 对于缓存在小程序的音频(wx.saveFile(OBJECT)保存的音频),IOS只能通过播放背景音乐的接口播放,其它播放方法都没有成功实践,而对于安卓,内部 audio 上下文 innerAudioContext 对
-
iOS 截取字符串中两个指定字符串中间的字符串方法
例如,要截取一个字符串中,两个指定字符串中间的字符串,OC截取方法如下: // 要截取 "> 和 </ 之间的汉字内容: @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; NSString *string = @"<a href=\"http\">这是要截取的内容</a>"; NSRange startRange = [st
-
iOS利用UITableView设置全屏分隔线的3种方法总结
前言 本文主要给大家总结了iOS用UITableView设置全屏分隔线的3种方法,一般TableView设置全屏分隔线有下面三种方法: 1.自定义cell,手动添加分割线 隐藏自带的 tableView.separatorStyle = UITableViewCellSeparatorStyleNone; 可以通过addSubview的方式添加一条分割线:也可以自绘分割线. // 自绘分割线 - (void)drawRect:(CGRect)rect { CGContextRef context
随机推荐
- 获取远程机器共享目录的物理路径的代码
- php生成毫秒时间戳的实例讲解
- php 特殊字符处理函数
- C++之CWnd窗口框架实例
- 使用Raygun对Node.js应用进行错误处理的方法
- mac 安装omyzsh后不执行~/.bash_profile、~/.bashrc的完美解决办法
- JS多级连动菜单
- C语言获取Shell返回结果的实现方法
- oracle 多个字符替换实现
- jquery清空表单数据示例分享
- Jquery自定义button按钮的几种方法
- JavaScript提高网站性能优化的建议(二)
- JS获取文本框,下拉框,单选框的值的简单实例
- pv是什么的真正含义?
- Java编程中使用lambda表达式的奇技淫巧
- C# 操作符之三元操作符浅析
- Android ItemDecoration 实现分组索引列表的示例代码
- Android学习教程之动态GridView控件使用(6)
- Java实现一个简单的定时器代码解析
- OpenCV图像文件批量读取编程实例