0
我的主要觀點有一個子視圖,這是我一個面具添加到使用以下擴展名:爲什麼在向子視圖添加圖層蒙版時需要調用layoutIfNeeded()?
extension UIView{
func addTopRoundCorners(){
let bezierPath = UIBezierPath(roundedRect: self.bounds, byRoundingCorners: [UIRectCorner.topLeft, UIRectCorner.topRight], cornerRadii: CGSize(width: 20, height: 20))
let maskLayer = CAShapeLayer()
maskLayer.path = bezierPath.cgPath
maskLayer.fillColor = UIColor.red.cgColor
self.layer.mask = maskLayer
}
}
我已經注意到我的子視圖這段代碼的作用只在屏幕上,如果我的電話出現layoutIfNeeded()
在我的主視圖中,然後將遮罩添加到我的子視圖中。我真的很感激,如果有人能向我解釋爲什麼這是?
你在使用autolayouts嗎? – apineda
您如何理解視圖生命週期?從根本上說,你告訴操作系統重新繪製需要的東西。 – dfd
是的,我正在使用自動佈局。但是,我通過代碼而不是故事板添加了它們。我也知道在使用自動佈局時,爲了使掩碼工作,您必須調用'layoutIfNeeded()',但爲什麼? @apineda –