4
我有一個UIView子類,我添加了一些CALayers
。我已經通過故事板將這個UIView
添加到我的視圖中。出於某種原因訪問init(和awakeFromNib)中的幀和界限始終爲(0,0,1000,1000)。爲什麼是這樣?UIView框架和邊界錯誤
class SliderView: UIView {
let trackLayer = CAShapeLayer()
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
// The bounds are wrong
trackLayer.path = UIBezierPath(roundedRect: self.bounds, cornerRadius: 15).cgPath
}
}
儘量覆蓋'initWithFrame:方法'。 – rmaddy
@rmaddy我也是。我的代碼實際上是在編碼器和initWithFrame中調用的共享init方法中。但是因爲我將它添加到故事板中,所以它只是被調用的編碼器。 – Tometoyou
在應用佈局約束後,在layoutSubviews中獲取框架。 –