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

324 阅读1分钟

问题: 设置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;