Поиск…


замечания

Стало проще создавать пользовательские элементы управления в 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 .

Установка типа класса в MyRoundedView

Когда вы это сделаете, вы увидите третий ярлык под «Class» и «Module», который говорит «Designables», и он должен сказать «Updating» на мгновение, прежде чем перейти на «Up to date». Это означает, что Xcode успешно перекомпилировал ваш код для MyRoundedView .

Теперь вы можете открыть Инспектор атрибутов, и вы должны увидеть (возможно, после короткой паузы) новый раздел в верхней части панели с заголовком «Мой округленный вид» и новый атрибут с надписью «Радиус» со значением 8 (потому что это это начальное значение, которое мы установили в коде). Это появилось в Инспекторе атрибутов, потому что мы отметили его как @IBInspectable .

Теперь вы можете изменить это на другой номер, и вы должны увидеть обновление радиуса радиуса закругленного вида в реальном времени!

Обновление проверяемого имущества



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow