我正在使用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
来触发布局,但不应依赖于其他任何人调用的任何一个。
关于ios - 在iOS10而非iOS9上调用layoutIfNeeded,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40303972/