iOS 11 的第三篇~~~
iPhone X 发布了。全面屏,Face ID,刘海。扎心了~。就是买不起,肾不够用了。
言归正传,这篇说一些乱七杂八的更新小点吧~~~
iPhone X
启动图
启动图尺寸多了 iPhone X 的尺寸。
Portrait dimensions | Landscape dimensions |
---|---|
1125px × 2436px (375pt × 812pt @3x) | 2436px × 1125px (812pt × 375pt @3x) |
只要把准确的启动图放进去,那么在 iPhone X 上就会自动适配了。当时只需要看哪些 UI 出问题需要修改。
如果是用LaunchScreen.storyboard
的话,基本不用更改就适配了。
两个 Bar 的高度
iPhone X 上的 navigationBar 和 tabBar 的高度有了变化~~
iPhone X | no iPhone X | |
---|---|---|
navigationBar | 44 + 44 = 88 | 20 + 44 = 60 |
tabBar | 83 | 49 |
会闪退的代码
获取statusBar
的一些状态,比如电池啊什么的,会用到这样一句代码
|
|
这代码在 iPhone X 会造成闪退。原因是 iPhone X 没有这个foregroundView
。
判断是否 iPhone X
iPhone X 的高度是 812 ,所以可以通过这个高度直接判断是不是 iPhone X。
Swift 版本
|
|
Objective-C 版本
|
|
LargeTitle
iOS 11 的 UI 设计有个特点,更加注重内容吧。所以字体加粗的加粗,变大的变大。总觉得 app store 可以说是这次 iOS 11 设计的一个典型例子~。其中,LargeTitle
的出现,也相当于是
开启这个属性很简单。
|
|
还可以利用富文本可以更改一些属性等。
|
|
但一些viewController
不需要的时候,可以通过以下代码进行关闭。那么就可以和原先的一样了。
|
|
另外,可以对 searchBar 进行一些滑动隐藏
|
|
UITableView
UITableViewCell
左右滑动出现了按钮,多了一些动画效果。另外,代理方法也变化了。
|
|
另外,iOS 11 上的 UITableView 默认就是开启自动行高的。即——
|
|
对此,需要对其加上一个 估算行高 。
|
|
如果要关闭这个自动行高,只需要把estimatedRowHeight
设置为 0 。
对于自动行高,有一点需要记住的,如果 cell 使用
- Auto Layout,需要保证 cell 的 subViews 约束正确
- Frame Layout,需要重写 sizeThatFit: 这个方法
版本判断
Swift 一直都有的 iOS 版本判断 if #available(iOS 11.0, *) {}
。终于在 Xcode 9 中,Objective-C 也可以用了。
|
|
automaticallyAdjustsScrollViewInsets
iOS 11 之前,用automaticallyAdjustsScrollViewInsets
来管理UIScrollView
的 subView 的偏移,但是 iOS 11 开始,这属性被废弃。改成contentInsetAdjustmentBehavior
了。
|
|
定位权限
iOS 11 强推了 使用 app 期间才定位 的权限。需要在 info.plist 文件中添加
|
|
或者是 ——
最后那个是新增的~~
Xcode
多个模拟器
对哒。Xcode 可以开启多个 模拟器 跑工程。内牛满面啊。有木有~
无线 Debug
前去 windows - device and simulators 。
New Build System
File - Project Setting / workspace setting
build system 选择 new build system 即可。
该模块是用 Swift 重写。