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版本:


Xcode 8-UIView对应的Frame不正确_第1张图片
FlyElephant.png

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

    [self.view layoutIfNeeded];

②viewWillLayoutSubviews中修改:

  [super viewWillLayoutSubviews];

你可能感兴趣的:(Xcode 8-UIView对应的Frame不正确)