升级了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版本:
2.代码方式:
①在viewDidLoad或者awakeFromNib调用完super方法后再调用View的layoutIfNeeded即可获取到正确的frame值
[self.view layoutIfNeeded];
②viewWillLayoutSubviews中修改:
[super viewWillLayoutSubviews];