Я хочу нарисовать отверстие в форме @IBDesignable. Для этого мне нужен размер вида, который является выше в иерархии представлений. Это представление изменяет размер по ограничениям.Может ли значение var в @IBDesignable зависеть от внешних значений, таких как кадр представления?
How to retrieve the frame? May this is not possible at all, because the view we are depending on is drawn later? But it's frame size may be retrievable early?
<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
}
}
Но способность ** рендеринга жизни не исчезла **: _error: IB Designables: Не удалось отобразить экземпляр xyView: Агент crashed_ –