我想在@IBDesignable 视图中绘制一个形状孔。为此,我需要视图的大小,它位于视图层次结构的上方。这个视图通过约束改变它的大小。
如何检索框架?可能这根本不可能,因为我们所依赖的视图是稍后绘制的?但它的帧大小可能会提前恢复?
<MainView>
| <View>
| | <ViewWithShape>
| <ViewWeDependOn>
形状在 layoutSubviews 中绘制:
override func layoutSubviews() {
super.layoutSubviews()
if !(holeLayer != nil) {
holeLayer = CAShapeLayer()
layer.mask = holeLayer
let rect = bounds // I need the frame HERE
let path = UIBezierPath(quadrantHoleInsideRect: rect)
holeLayer.path = path.CGPath
}
}