簡體   English   中英

在iOS10而非iOS9上調用layoutIfNeeded

[英]layoutIfNeeded called on iOS10 but not iOS9

我正在使用layoutIfNeededUITableViewCell進行一些視圖設置。 例如:

override func layoutIfNeeded() {
  super.layoutIfNeeded()
  let rescueButtonCornerLayer = CAShapeLayer()
  let rescueButtonRoundedCornersPath = UIBezierPath(roundedRect: rescueNowButton.bounds, byRoundingCorners: [UIRectCorner.bottomLeft, UIRectCorner.bottomRight], cornerRadii: CGSize(width: MyTheme.cornerRadius, height: MyTheme.cornerRadius))
  rescueButtonCornerLayer.path = rescueButtonRoundedCornersPath.cgPath
  rescueNowButton.layer.mask = rescueButtonCornerLayer
}

這在iOS10中可以正常工作,但是我注意到iOS9中根本沒有調用layoutIfNeeded 為什么是這樣? 我該怎么辦才能解決該問題,或者應該在哪里放置此設置代碼?

您的布局代碼應位於layoutSubviews ,它將被自動調用。 您也可以調用setNeedsLayout和/或layoutIfNeeded來觸發布局,但是您不應該依賴於其他任何人所調用的那些。

暫無
暫無

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

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