ios9升级 ios9升级对比8

admin2024-05-30  20

引言:之前公司没有提供测试机,于是就在自己的iPhone7 (系统 iOS11) 上做开发测试了,一切效果完好。然而市场部总反应有一些问题。。。最近老板拿了个iPhone6点开应用问题一堆,一看系统版本iOS8。我意识到是系统版本问题,于是开始了爬坑之路。。。

1.项目采用xib加代码的方式实现,在iOS11上面一切完好,iOS上只要涉及button之类的交互控件xib与所在类文件绑定实现的点击方法,一点即crash。经过分析发现,iOS11之前的绑定如下:

ios9升级 ios9升级对比8,ios9升级 ios9升级对比8_tableview,第1张

button在父view上需要绑定fileOwner、xib文件,点击方法绑在xib文件上,这样才能在类文件中操作button控件的属性及点击方法;而iOS8上却发现原来fileOwner绑定没了,所以点击按钮就会崩溃;解决办法X掉之前的所有绑定,重新绑定下以上三项就ok。

2. tableview的视图层次发生了变化,iOS11中cell的superView是tableView;iOS8中,cell的superView是UItableviewWrapView,所以项目中若用到cell的superView来获取其所在的tableView那么就会出现问题。这一点要注意。

3. 关于分组类型的tableView,在iOS8中设置了tableView为Group类型,如果不设置tableView的sectionView及sectionTitle,只设置sectionHeaderHeight,那么会默认隐藏掉第一组的sectionHeaderHeight,tableView内容不会向下偏移一个sectionHeaderHeight的高度,但是iOS11中则不会自动忽略第一组的组头高度,内容会向下偏移一个组头的距离,设置sectionHeaderHeight也无效;那么如何解决呢??如果用了分组样式,在tableView返回sectionHeaderView的方法里,给一个view,就可以完美解决。

4. 有导航栏的控制器内铺满屏幕的tableView内容无故向下偏移,或上移被导航栏遮挡,在iOS11中会默认处理tableview的布局不被遮挡,iOS8中则不会自动帮我们处理:需要我们手动设定控制器的这两个属性设定布局规则: self.automaticallyAdjustsScrollViewInsets = YES;

self.edgesForExtendedLayout = UIRectEdgeBottom;

第一个属性设定控制器自动处理滚动视图的内容布局,第二属性设置布局的原点为导航栏的左下角。

希望能帮到大家!


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明原文出处。如若内容造成侵权/违法违规/事实不符,请联系SD编程学习网:675289112@qq.com进行投诉反馈,一经查实,立即删除!