ios7的UITableView使用AutoLayout的一個坑

學習中遇到的坑,暫時還未解決,先記錄下來。


最近在研究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上是沒問題的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章