iOS 11已经升级一周多了,目前项目也基本已经适配完成。这里我总结下iOS 11 和Xcode 9的一些更新,希望能够对你有用!
Xcode 9 更新
1.代码折叠
升级完Xcode 9 发现代码不能折叠了,这对于我这种习惯折叠代码调理清晰的人这么能够接受呢?如实我发现了
(哦!录得视频转gif 之后有白边啊.... 各位将就这看吧哈)
Command + 左键 之后选择Fold
2.点击对象跳转
什么?Command+左键不能跳转了,这..... , 没关系!
Command+左键 + Jump to Definition
这个天天用,每次要两个步骤,这不是要命吗?这..... ,没关系 !
Command+右键 可直接跳转
我之前都是Command + 左键就跳转了,现在各种不习惯啊,这..... , 没关系!
设置这里就变回之前的啦,Command + 左键 就能直接跳转了,上面所说的其他功能就是变成了 Command + 右键
3.无线真机调试
同一局域网下,iOS 11 勾选 Connect via network 就可以真机调试了,但是速度肯定比有线的慢
4.真假文件夹
更新完之后你会发现,哇!怎么还有个小三角,这就是真假文件夹的一个标示,如果文件夹在Finder真是存在就没有三角,如果是在Finder 不存在就带着小三角
iOS 11 适配
iOS 11 引入了安全局域的概念,那什么是安全局域呢,我在这就不累述了,网上已经有很多了,这里直说解决办法。
1 iOS 11 cell 高度计算不对?
FDTemplateLayoutCell 计算出错?这都是iOS 11 UITableView默认 开启Self-Sizing
解决办法
[UITableView appearance].estimatedRowHeight = 0;
[UITableView appearance].estimatedSectionHeaderHeight = 0;
[UITableView appearance].estimatedSectionFooterHeight = 0;
2 iOS 11 tableView 内容下移?
这是 iOS 11 引入安全区域的原因
解决办法
if (@available(iOS 11, *)) {
[UIScrollView appearance].contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
}
3 定位出问题,app 莫名闪退?
因为苹果现在增加了一项新的隐私保护功能 NSLocationAlwaysAndWhenInUseUsageDeion,
并且原有的 NSLocationAlwaysUsageDeion 被降级为 NSLocationWhenInUseUsageDeion。
想要达到之前 NSLocationAlwaysUsageDeion 的定位效果,需要在info.plist文件中添加 NSLocationAlwaysAndWhenInUseUsageDeion和 NSLocationWhenInUseUsageDeion 两个就可以了
NSPhotoLibraryAddUsageDescription 引起的闪退
This app has crashed because it attempted to access privacy-sensitive data without a usage description. The app's Info.plist must contain an NSPhotoLibraryAddUsageDescription key with a string value explaining to the user how the app uses this data.
这是因为iOS 11 引入了一个保存图片的隐私权限 需要在info.plist 添加 Privacy - Photo Library Additions Usage Description 就完美了!
好了,先总结到这里,以后遇见再加, 欢迎亲们点赞哈!😘 😙