ios7的UITableView使用AutoLayout的一个坑

来源:互联网 发布:万网域名交易平台上线 编辑:程序博客网 时间:2024/05/21 03:16

学习中遇到的坑,暂时还未解决,先记录下来。


最近在研究Autolayout,也写了一些demo,其中在用AutoLayout实现一个ScrollView的下拉刷新时遇到一个问题:

在ios7中使用AutoLayout在UITableView添加一个子视图时报以下错误: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上已经解决了,但实际使用还是遇到了这个问题,有可能还是没修复。


网上也找到一些解决的办法:

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

但试了好几种方法都没法解决我的问题,最后没有办法了只能通过SetFrame的方式把子视图添加到UItableView上面


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

1 0