ios 11更新后 项目中需要修改的点 整理

2017-11-01  本文已影响29人  MoneyLee

问题: 设置tableview section header高度无效 代理方法没有执行
原因:iOS11默认开启Self-Sizing
解决办法:关闭Self-Sizing即可
示例:
self.tableView.estimatedRowHeight = 0; self.tableView.estimatedSectionHeaderHeight = 0; self.tableView.estimatedSectionFooterHeight = 0;
================================================
控制台打印线程问题:
Main Thread Checker: UI API called on a background thread: -[UIApplication statusBarOrientation] PID: 3813, TID: 87132, Thread name: (none), Queue name: BaseOperatorService, QoS: 0
原因: 需要在主线程执行的代码 被放在了子线程里边
解决办法: 在scheme 里边取消主线程检测 (如下图 不建议使用) 或者修改代码 把出问题的代码放在主线程里边即可 我这里目前发现了shareSDK 内部有状态栏设置在子线程 出现打印问题

Snip20171101_1.png

================================================
问题:导航栏状态栏留白20xp

Snip20171101_2.png
原因:iphone X 导航栏为 44+44 原来为20+44
解决办法:
self.navigationController.navigationBar.clipsToBounds = NO;
拓展:
iPhone X尺寸问题
分辨率1125*2436 (375*812)
导航栏为 44+44 原来为20+44
底部tabbar 49+34 其余屏幕 49+0
================================================
问题:ios 11后 UITableview设置头部搜索框 刷新后自动上移20像素的处理
Simulator Screen Shot - iPhone 6s - 2017-09-25 at 10.28.15.png Simulator Screen Shot - iPhone 6s - 2017-09-25 at 10.24.43.png

原因: 苹果在 iOS 7 中为 ViewController 提供了一个 edgesForExtendedLayout 新属性。如果你将这个属性设置为UIRectEdgeNone,则 viewController 的所有子视图都会自动调整。
目前暂时也适用于不同系统版本代码更迭出现状况时使用。
解决办法:
self.edgesForExtendedLayout = UIRectEdgeNone;

上一篇下一篇

猜你喜欢

热点阅读