2016-08-15 44 views
17

隨着項目中,我使用下面的代碼,以使我的圖片圓形:IOS SWIFT 3 xcode8測試四捨五入的ImageView

profileImage.layer.cornerRadius = profileImage.frame.size.width/2 
profileImage.clipsToBounds = true 

我也用contrains我的圖像,使其width = hight,和其他約束。

將我的項目損壞到xcode 8 beta和swift 3.我設置爲四捨五入的所有圖像視圖都消失了,並且當我刪除代碼以使其變圓或刪除所有約束時,它們再次出現。
但我仍然需要他們被舍入。任何人都可以幫助我解決這個問題。 謝謝

+0

在調試器中檢查什麼是val 'profileImage.frame.size.width'。佈局可能尚未完成。因此,角落半徑可能被設置爲無效值。你是否也同時升級到iOS 10? – Codo

+0

Apple在發行說明中還指出,新IB文件格式存在問題(主要在beta 5中已經修復)。我一直在意見和約束條件中改變自己。 – jjatie

+0

隨着cucode的xcode版本,它工作得很好,在升級到xcode beta 5之後,我設置的所有圖像四捨五入都消失了。我總是確保寬度=高。我使用約束來設置它。 –

回答

26

我有同樣的問題,解決方案只是在你的圖層修改之前移動一行代碼。 嘗試應用佈局的變化:你的代碼之前

self.view.layoutIfNeeded() 

profileImage.layer.cornerRadius = profileImage.frame.size.width/2 
profileImage.clipsToBounds = true 

OR

地方你的代碼涉及到幀/層到viewDidLayoutSubviews()方法:

override func viewDidLayoutSubviews() { 

    profileImage.layer.cornerRadius = profileImage.frame.size.width/2 
    profileImage.clipsToBounds = true 

} 
+0

非常感謝你pedrouan。它的工作很好。 –

+1

浪費了一天的時間,試圖解決這個問題: – tufyx