UIView框架在升级到XCode 8后在viewDidLayoutSubviews中出现错误

问题描述:

在我的每个xib中,它问我要使用哪个默认设备。我选择了iPhone 6并将帧更新为建议的帧。现在,在viewWill或viewDidLayoutSubviews中受到影响的任何视图都会混乱。它们都有CGRect框架(0,0,1000,1000)。UIView框架在升级到XCode 8后在viewDidLayoutSubviews中出现错误

这里是我的代码:

self.headImage.layer.cornerRadius = ceilf(CGRectGetWidth(self.headImage.frame)/2); 
self.headImage.layer.masksToBounds = YES; 

想知道这是怎么回事这个和是否有解决方案。由于

+0

你能请出示您的代码之前调用

myOwnView.layoutIfNeeded() 

解决我的问题? –

+0

self.headImage.layer.cornerRadius = ceilf(CGRectGetWidth(self.headImage.frame)/ 2); ; self.headImage.layer.masksToBounds = YES; //但框架是错误的;它在xib中显示CGRect(0,0,1000,1000),它的高度和宽度分别是62和62; – PiscesZjc

+1

我在xcode 8更新后有完全相同的问题。 viewDidLayoutSubviews上的第二个触发器提供了正确的框架。 –

我通过获取myOwnView.frame

+0

这可行,但我不确定为什么这是必需的。我会假设布局过程在didLayoutSubviews回调之前完成。 – Legoless