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 强制进行布局。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容