iOS开发
来源:互联网 发布:波士顿矩阵分析案例 编辑:程序博客网 时间:2024/06/05 16:42
IOS11正式版马上就要发布了,是时候适配一波了。下面就来说说我适配过程中遇到的坑吧。
UITableView:默认开启Self-Sizing
首先要知道Self-Sizing是个什么东东。看官方文档的解释:
大概就是说我们不再需要自己去计算cell的高度了,只要设置好这两个属性,约束好布局,系统会自动计算好cell的高度。IOS11以后,Self-Sizing默认开启,包括Headers, footers。如果项目中没使用estimatedRowHeight属性,在IOS11下会有奇奇怪怪的现象,因为IOS11之前,estimatedRowHeight默认为0,Self-Sizing自动打开后,contentSize和contentOffset都可能发生改变。可以通过以下方式禁用:
self.tableView.estimatedRowHeight = 0;
self.tableView.estimatedSectionHeaderHeight = 0;
self.tableView.estimatedSectionFooterHeight = 0;NSLocationAlwaysAndWhenInUseUsageDeion
在IOS11,原有的NSLocationAlwaysUsageDeion被降级为NSLocationWhenInUseUsageDeion。因此,在原来项目中使用requestAlwaysAuthorization获取定位权限,而未在plist文件中配置NSLocationAlwaysAndWhenInUseUsageDeion,系统框不会弹出。建议新旧key值都在plist里配置,反正我试下来是没有问题,唯一的区别是使用requestAlwaysAuthorization获取权限 IOS11系统弹框会把几种权限级别全部列出,供用户选择,显然更人性化了哈~~
UIScrollViewContentInsetAdjustmentBehavior
IOS11 之前,不想让scrollView偏移64px,设置automaticallyAdjustsScrollViewInsets=NO就可以了。IOS11以后就废弃了,使用scrollView的属性contentInsetAdjustmentBehavior来防止偏移。
UIScrollViewContentInsetAdjustmentAutomatic
UIScrollViewContentInsetAdjustmentScrollableAxes
UIScrollViewContentInsetAdjustmentNever
UIScrollViewContentInsetAdjustmentAlways这里我们直接选Never就可以了
以上就是我项目中适配IOS11遇到的坑,后续有坑继续来填…
更新:
- Navigation Bar
navigation bar 的titleView支持了autolayout,需要titleView自己撑开或者重写了- intrinsicContentSize方法。intrinsicContentSize顾名思义,固定大小的意思,主要是解决一些模糊约束的问题。更多知识可以看这篇文章详解intrinsicContentSize。
不做适配在IOS11会遇到的问题:
titleView对应的View大小和预期不一致。
titleView对应的View有点击事件会无法触发
解决方法是直接重写titleView对应View的intrinsicContentSize方法- (CGSize)intrinsicContentSize {
return UILayoutFittingExpandedSize;
}
- ios开发
- ios开发
- iOS开发
- IOS开发
- iOS开发
- iOS开发
- iOS开发
- ios 开发
- IOS开发
- ios开发
- ios开发
- iOS开发
- ios开发
- iOS-开发
- iOS开发
- ios开发
- iOS开发
- iOS开发
- 第三课
- C#中的变量类型var
- 【20171013】opencv安装和一个简单实例
- 第一次接触Python
- Android零基础入门第75节:Activity状态和生命周期方法
- iOS开发
- oracle的约束的分类创建和修改
- 懒人读算法(九)-所有子集(有重复)
- 关于 idea 自定义标签 todo 等的创建及使用
- ubuntu server 搭建 svn
- GetCurrentProcesName
- zK
- Annual work summary
- help2416_at24c16测试_eeprog