簡體   English   中英

UIButton,自動布局並獲取按鈕的高度

[英]UIButton, Autolayout and getting the height of the button

我正在嘗試獲取自定義UIButton的真實高度。 但是我總是得到的值比我預期的要小。 我得到大約30,但期望大約45。

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

這是我的代碼,但是在運行時,自動布局會以某種方式更改大小,這很完美,但是我無法設置正確的cornerRadius(總是太小)。 所以也許我需要乘數或類似的東西。 我已經添加了top和bottom的contentEdgeInsets進行了測試,但這沒什么區別。

謝謝托比亞斯

該視圖尚未在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
}

在打印尺寸之前,請嘗試調用self.layoutIfNeeded()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM