博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS:在tableView中通过Masonry使用autolayout在iOS7系统出现约束崩溃
阅读量:7297 次
发布时间:2019-06-30

本文共 991 字,大约阅读时间需要 3 分钟。

一、出现崩溃情景:

给tableView创建一个头视图,也即tableHeaderView,然后使用Masonry并切换到iOS7/7.1系统给tableHeaderView中的所有子视图添加约束,此时出现崩溃。

 

二、崩溃日志:

Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Auto Layout still required after executing -layoutSubviews. UITableView's implementation of -layoutSubviews needs to call super.

 

三、崩溃原因:

据说AutoLayout是iOS6的一个bug,在iOS7上已经解决了,但实际使用还是遇到了这个问题,有可能还是没修复。

 

四、解决办法:

(1)采用setFrame方法,在layoutSubViews中给子视图计算相对位置。

(2)采用Masonry框架,不在layoutSubViews中进行,而是自定义一个方法,例如-(void)setupConstraint,然后在该方法中进行autolayout约束,在init或者initFrame中添加子视图后,调用该方法即可,也即[self setupConstraint]。

(3)采用Masonry框架,在layoutSubViews中进行,在该方法中进行autolayout约束,但是必须放在[super layoutSubViews]方法之前进行

(4)S。网上比较多的说法是说给UITableView添加一个分类,在分类中覆盖+load方法,然后再load方法中使用swizzling来调整函数的执行顺序,保证执行完Autolayout后调用super -layoutSubviews。这是一个此方法的链接:。

 

五、额外补充:

在ios7上,使用Autolayout添加子视图到UIScrollView上是没问题的。

程序猿神奇的手,每时每刻,这双手都在改变着世界的交互方式!
本文转自当天真遇到现实博客园博客,原文链接:http://www.cnblogs.com/XYQ-208910/p/6647308.html
,如需转载请自行联系原作者
你可能感兴趣的文章
php验证手机号码
查看>>
POJ Problem 1423 Big Number 【stirling公式】
查看>>
AT2377 Blue and Red Tree
查看>>
监督学习——AdaBoost元算法提高分类性能
查看>>
通过ASP.NET Ajax技术模拟实现NBA比赛文字直播功能
查看>>
[数学建模(三)]遗传算法与旅行商问题
查看>>
Linux上文件恢复工具
查看>>
关于开发环境无法运行applet
查看>>
9 完整的用户注册登录实例
查看>>
1.AJAX简介
查看>>
MVC5-3 Result分析
查看>>
记SpannableString设多少span时注意事项
查看>>
iOS8.1 To iOS8.2
查看>>
C#中让窗体自动靠边隐藏
查看>>
多态基类的析构函数应该为虚函数
查看>>
数据结构之 循环表线性表
查看>>
python 实现进制转换(二进制转十进制)
查看>>
Scrum立会报告+燃尽图(十二月九日总第四十次):视频剪辑与用户反馈
查看>>
xlst
查看>>
修改PHP上传文件的大小限制(post)
查看>>