0
我正在使用layoutIfNeeded
在UITableViewCell
中執行一些視圖設置。例如: -layoutIfNeeded在iOS10上調用,但不在iOS9上
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工作正常,但是我注意到layoutIfNeeded
不叫在iOS9了!爲什麼是這樣?我能做些什麼來解決它,或者我應該在哪裏放置這個設置代碼?
將上面的代碼移動到'layoutSubviews',它確實在iOS9和iOS10上調用。然而,按鈕的角落根本不是四捨五入的。如果放置在'layoutIfNeeded'中,它們只會舍入。任何想法爲什麼? – KexAri
@KexAri您是否檢查過在layoutSubviews中設置的界限,以及之後的視圖層次?你在調用'super.layoutSubviews()'嗎?你有沒有嘗試把自己的代碼放在'super'調用的另一端(之前和之後)? – Arkku