2016-12-09 2 views
2

Я хотел был бы сделать custom UINavigationItem, и что изменения могли быть сделаны и увидены в раскадровке. Я знаю, как сделать обычай UIView с @IBDesignable и @IBInspectable, но моя проблема заключается в том, что UINavigationItem не имеет метода draw и required init?(coder aDecoder: NSCoder) вызван в ближайшее время.Сделайте UINavigationItem как @IBDesignable

Как наилучший подход к решению этой проблемы?

+0

Я не думаю, что вы можете. 'UINavigationItem' не наследуется от' UIView'. Лучшим шансом может быть дизайн 'UINavigationBar' и просмотр элементов панели. – Losiowaty

ответ

6

К сожалению, изготовителю интерфейса не удалось создать настраиваемый UINavigationItem в построителе интерфейса (что означает @IBDesignable). В the docs (a раздел «Живой рендеринг») говорится, что вы должны наследовать класс от UIView/NSView. В свою очередь, UINavigationItem унаследован от NSObject.

Живая Rendering

Вы можете использовать два различных attributes- @ IBDesignable и @ IBInspectable-для того, чтобы жить, интерактивный дизайн настраиваемое представление в Interface Builder. Когда вы создаете пользовательское представление, которое наследует от класса UIView или класса NSView, вы можете добавить атрибут @IBDesignable непосредственно перед объявлением класса. После того, как вы добавите пользовательский вид в Interface Builder (установив пользовательский класс представления в области панели инспектора), Interface Builder отобразит ваше представление в холсте .

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