2016-01-06 84 views
0

我想要得到我的自定義UIButton的真正高度。但我總是得到比我預期的更小的價值。我得到大約30個的東西,但預計一些關於45UIButton,Autolayout並獲得按鈕的高度

override func awakeFromNib() { 
    print(self.frame.height) 
    self.layer.cornerRadius = self.layout.frame.height/2.0 
    self.clipsToBounds = true 
    self.titleLabel?.adjustsFontSizeToFitWidth = true 
} 

這是我的代碼,但在運行時莫名其妙的自動版式改變大小,這是完美的,但我不能設置正確的cornerRadius(總是太小)。所以也許我需要乘數或類似的東西。我已經嘗試添加頂部和底部的contentEdgeInsets,但它沒有任何區別。

感謝 托比亞斯

回答

4

的觀點並沒有在awakeFromNib()奠定了規模之前。當佈局確保已經發生時設置你的角落半徑。

對於一個觀點:

override func layoutSubviews() { 
    super.layoutSubviews() 
    layer.cornerRadius = frame.height/2.0 
} 

對於一個UIViewController:

override func viewDidLayoutSubviews() { 
    super.viewDidLayoutSubviews() 
    view.layer.cornerRadius = view.frame.height/2.0 
} 
+1

調用layoutIfNeeded()!謝謝! – Tobias

0

嘗試調用self.layoutIfNeeded()打印

+0

沒什麼區別... – Tobias

+0

也許,如果你在這工作完全父視圖 – juanjo