Подтвердить что ты не робот

Как вы показываете пользовательские UIViews в InterfaceBuilder?

Мне нравится создавать новые UIViews и UIControls, которые реализуют свой собственный метод -drawRect:. Эта работа хорошо для меня, особенно когда она составлена ​​с помощью UIViews в Interface Builder.

Но составление их в интерфейсе Builder раздражает, потому что они просто отображаются как скучные простые прямоугольники.

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

Есть ли способ структурировать мой проект, чтобы интерфейс Builder отображал мои пользовательские представления?

4b9b3361

Ответ 1

Для этого вам действительно нужно создать подключаемый модуль для Interface Builder, который использует ваш собственный класс. После создания и установки вашего плагина вы сможете перетаскивать экземпляры вашего класса (ваш вид) в другое окно/представление/независимо от того, как любой другой элемент управления. Чтобы начать работу с создания модулей IB, см. Руководство по программированию плагинов интерфейса Builder. Кроме того, я рекомендую взглянуть на книгу Аарона Хиллегасса, Cocoa Программирование для Mac OS X. Помимо того, что он хорошо написан и понятен, он имеет главу о создании собственных элементов управления палитры IB.

Ответ 2

Это достигается путем маркировки вашего подкласса UIView с помощью @IBDesignable. Когда вы это сделаете, ваши пользовательские представления окажутся в интерфейсе Builder. Вы даже можете добавить параметры, которые можно настроить, пометив их как @IBInspectable. Вот пример Swift:

@IBDesignable class customView: UIView {

    @IBInspectable var count: Int = 0

}

Здесь содержится статья о NSHipster, в которой содержится более подробная информация.