Xcode 8中新的 IB 布局的一個坑點

Xcode8 中使用了新的IB布局,升級到Xcode8后首次打開一個原有的xib、storyboard文件,將會出現這樣的提示:

屏幕快照 2016-09-14 09.46.15.png

選擇一個默認尺寸來顯示布局,這個尺寸可以在IB下方進行修改,十分方便。

這本是一個很好的功能,可是!!!!!!!!!當你將IB改用新版后,在界面未展示前,所有的view的布局都是1000*1000的!!!!!十分的坑人,十分的隱蔽!
其實之前也會有這問題,之前storyboard中如果控制器的size設置為600x600,那么取出來的self.view也將是600x600。但是原來如果view設置了寬高約束,那么取寬高的值將會是正常的值。新版中不管有沒有寬高約束,全部是1000x1000。

例如:在viewDidLoad中使用view的frame取到的size是 1000x1000!
在tableView:cellForItemAtIndexPath:中 cell的子view size全部是1000x1000的!

51826DF3-780E-4203-A818-8C6704EEEA45.jpg

下面是解決辦法:

在使用frame或者bounds或者center取值前,使用 layoutIfNeeded 強制進行布局。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容