Xcode
Создание пользовательских элементов управления в построителе интерфейса с помощью @IBDesignable
Поиск…
замечания
Стало проще создавать пользовательские элементы управления в Interface Builder с введением в Swift директив @IBDesignable
и @IBInspectable
. Теперь разработчики могут создавать богатые, сложные, полностью анимированные элементы управления, используя только несколько дополнительных строк кода. Я удивлен тем, как многие разработчики еще не полностью используют эту функцию, и часто обнаруживаю, что добавление нескольких строк кода к существующим классам может облегчить их работу.
Обратите внимание, что эти функции также доступны в Objective-C и являются отличным способом вдохнуть жизнь в старые классы. Синтаксические эквиваленты в Objective-C - это IB_DESIGNABLE и IBInspectable, но пока я сосредоточусь на примерах в Swift.
Округлый вид в реальном времени
Это такое общее требование в разработке iOS, и всегда было что-то, что нужно было делать исключительно в коде (или используя образы - yuck!). Теперь невероятно легко просмотреть его вид в интерфейсе Builder, нет абсолютно никакого оправдания для его использования.
Вот код: -
import UIKit
@IBDesignable
class MyRoundedView: UIView {
@IBInspectable var radius: CGFloat = 8 {
didSet {
self.layer.cornerRadius = radius
}
}
override func awakeFromNib() {
self.layer.cornerRadius = self.radius
self.layer.masksToBounds = true
}
}
Чтобы использовать этот класс, добавьте его в свой проект, а затем откройте раскадровку в IB и создайте обычный UIView достойного размера. Дайте ему цвет фона, чтобы вы могли его увидеть, затем перейдите к Identity Inspector на правой панели «Утилиты» и измените тип класса в раскрывающемся MyRoundedView
.
Когда вы это сделаете, вы увидите третий ярлык под «Class» и «Module», который говорит «Designables», и он должен сказать «Updating» на мгновение, прежде чем перейти на «Up to date». Это означает, что Xcode успешно перекомпилировал ваш код для MyRoundedView
.
Теперь вы можете открыть Инспектор атрибутов, и вы должны увидеть (возможно, после короткой паузы) новый раздел в верхней части панели с заголовком «Мой округленный вид» и новый атрибут с надписью «Радиус» со значением 8 (потому что это это начальное значение, которое мы установили в коде). Это появилось в Инспекторе атрибутов, потому что мы отметили его как @IBInspectable
.
Теперь вы можете изменить это на другой номер, и вы должны увидеть обновление радиуса радиуса закругленного вида в реальном времени!