iOS11:Xcode9 你需要知道的都在这里!Xcode 9 更新iOS 11 适配

2018-06-01 17:22:20 浏览数 (1)

IMG_4302.JPG

iOS 11已经升级一周多了,目前项目也基本已经适配完成。这里我总结下iOS 11 和Xcode 9的一些更新,希望能够对你有用!

Xcode 9 更新

1.代码折叠

升级完Xcode 9 发现代码不能折叠了,这对于我这种习惯折叠代码调理清晰的人这么能够接受呢?如实我发现了

折叠.gif

(哦!录得视频转gif 之后有白边啊.... 各位将就这看吧哈)

Command 左键 之后选择Fold

2.点击对象跳转

跳转到方法.png


什么?Command 左键不能跳转了,这..... , 没关系!

Command 左键 Jump to Definition

这个天天用,每次要两个步骤,这不是要命吗?这..... ,没关系 !

Command 右键 可直接跳转

我之前都是Command 左键就跳转了,现在各种不习惯啊,这..... , 没关系!

修改.png

设置这里就变回之前的啦,Command 左键 就能直接跳转了,上面所说的其他功能就是变成了 Command 右键

3.无线真机调试

真机调试.png

同一局域网下,iOS 11 勾选 Connect via network 就可以真机调试了,但是速度肯定比有线的慢

4.真假文件夹

文件夹 .png

更新完之后你会发现,哇!怎么还有个小三角,这就是真假文件夹的一个标示,如果文件夹在Finder真是存在就没有三角,如果是在Finder 不存在就带着小三角

iOS 11 适配

iOS 11 引入了安全局域的概念,那什么是安全局域呢,我在这就不累述了,网上已经有很多了,这里直说解决办法。

1 iOS 11 cell 高度计算不对?

FDTemplateLayoutCell 计算出错?这都是iOS 11 UITableView默认 开启Self-Sizing

解决办法

代码语言:javascript复制
[UITableView appearance].estimatedRowHeight = 0;
[UITableView appearance].estimatedSectionHeaderHeight = 0;
[UITableView appearance].estimatedSectionFooterHeight = 0;

2 iOS 11 tableView 内容下移?

这是 iOS 11 引入安全区域的原因

解决办法

代码语言:javascript复制
      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 就完美了!

添加照片.png

好了,先总结到这里,以后遇见再加, 欢迎亲们点赞哈!? ?

0 人点赞