2016-09-19 43 views
7

在我的每個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上的第二個觸發器提供了正確的框架。 –

回答

7

我通過獲取myOwnView.frame

+0

這可行,但我不確定爲什麼這是必需的。我會假設佈局過程在didLayoutSubviews回調之前完成。 – Legoless