[英]layoutIfNeeded called on iOS10 but not iOS9
我正在使用layoutIfNeeded
在UITableViewCell
進行一些視圖設置。 例如:
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.