IBDesignable View - нужен ViewController во время разработки

Я создаю компонент IBDesignable, чтобы видеть визуализацию компонента в режиме реального времени в раскадровке Xcode. Компонент представляет собой просто композицию других компонентов. К сожалению, для правильной работы одного из этих компонентов требуется UIViewController. Да, плохо, но я не могу это контролировать.

Компонент отлично работает в приложении, но не отображается должным образом во время разработки, поскольку UIViewController для этой сцены недоступен. я пытался

  • продвигаясь вверх по цепочке респондентов в поисках UIViewController
  • создание IBOutlet для компонента и подключение его к контроллеру представления в раскадровке

Ни один из них не сработал; Контроллер представления всегда равен нулю. Какие-либо предложения?


person Paul Waldo    schedule 03.06.2017    source источник


Ответы (2)


UIViewController не может быть отображен в режиме IBDesignable. Вы просто можете IBDesignable в представлении персонала.

образец:

import UIKit

@IBDesignable
class SMButton: UIButton {


    override func layoutSubviews() {
        super.layoutSubviews()

        layer.cornerRadius = 6
        layer.borderColor = UIColor.baseInstagram.cgColor
        layer.borderWidth = 0.66

        titleLabel?.font = UIFont.systemFont(ofSize: 15)
        titleLabel?.textColor = UIColor.baseInstagram

    }


}

Образец представляет собой круглую кнопку с рамкой.

person J. Sue    schedule 03.06.2017
comment
Боюсь, вы правы. Я протестировал подключение других элементов управления из раскадровки к компоненту с тем же результатом. Живой дизайнер просто не работает с какими-либо внешними выходами. - person Paul Waldo; 04.06.2017

К сожалению, никакая среда, окружающая компонент IBDesignable, не может влиять на сам компонент.

person Paul Waldo    schedule 06.06.2017