Xcode 8-UIView对应的Frame不正确

升级了Xcode 8最近带来了一个很坑爹的问题,获取UIView的宽度和高度不正确,项目通过Xcode 8编译之后,在UIView还没有“布局完毕”的时候默认返回的frame的size大小为1000x1000,等到“布局完毕”后才能获取到正确的大小。
项目中坑爹的地方就是图片圆角设置问题,在viewDidLoad中通过frame的高度去设置圆角会导致图片不显示,已经升级可以自己尝试一下:

在viewDidLoad或者awakeFromNib调用完super方法后再调用View的layoutIfNeeded即可获取到正确的frame值。

    self.button.layer.cornerRadius = CGRectGetHeight(self.button.frame)/2;

解决方式有两种:
1.最简单的方式,xCode打开对应的StoryBoard,将Open in设置为7.x版本:


FlyElephant.png

2.代码方式:
①在viewDidLoad或者awakeFromNib调用完super方法后再调用View的layoutIfNeeded即可获取到正确的frame值

    [self.view layoutIfNeeded];

②viewWillLayoutSubviews中修改:

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

推荐阅读更多精彩内容