2015-09-02 3 views
0

Я хочу нарисовать отверстие в форме @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 
     } 
    } 

ответ

0

Я поставил этот вопрос, потому что мое первое очевидный решения было бы выхода в зависимости вид из внутри @ Вид IBDesignable.

This gave me a crash at first, but it is now working as expected.

+0

Но способность ** рендеринга жизни не исчезла **: _error: IB Designables: Не удалось отобразить экземпляр xyView: Агент crashed_ –

Смежные вопросы