iOS-在stroyBord中设置好的控件(view、button、label等)在界面没有显示出来

今天更新使用xcode8,遇到一奇葩问题,之前显示没问题,今天允许查看,设备和模拟器都看不到控件,来两张对比图:银行卡最左边的图片没有显示出来。

一般这种问题解决的思路:1.查看数据,2xcode犯神经,在storybord或者Xib里,上下拖动控件等等在这里就不多说了,

当然我这不是以上的原因,自己也是找了半天,哪里也没有错,因为是刚换的xcode8,所以把注意力转移到编译器特性上,问题就是在这里,在xcode8之前,我们在stroybord或者xib中所看到的布局,其实是一个初始值,编译的时候才会跟进aotulayout去补齐布局,但是xcode8的初始值是不确定的,比如说一个按钮在sb或者xib中的布局是  (0,0,100,100),编译的时候 初始值有可能会很大,无限吧,所以这时候你如果拿这个初始值去操作(代码),那么就会出现问题。

我这个问题是在cell中对imageView进行圆角操作,然后拿到imageView的宽度去设置,这里拿到的宽度并不是在sb/xib中看到的宽度,所以会出现问题,只有让他布局完后再取宽度,或者是直接写一个钉死的值比如50(宽度的一般)当然这样做不好,所以我采用了第一种方式,[self layoutfromNib]需要布局时使用,布局完毕后拿到的值就是准确的值,所以这个搞定。

posted @ 2016-09-09 15:39  Across fate  阅读(1677)  评论(0编辑  收藏  举报