Сохранить стилизованный элемент для повторного использования в других контроллерах представления

Я делаю приложение для iOS с Xcode, где все мои кнопки должны иметь одинаковый стиль. Единственная разница между этими кнопками - их высота и ширина. Есть ли способ сохранить первый стиль, который я создал, а затем использовать его снова в разных контроллерах представления, не копируя? Я думаю, что если это возможно, это сэкономит мне много времени.

1 ответ

Решение

Применение одного стиля к нескольким экземплярам UIButton:


Строго Программный маршрут:

Первые два метода - это то, что я бы сделал. Третий только для иллюстрации того, что можно написать init это копирует настройки с другой кнопки.

Примените предустановленный стиль с подклассом:

class StyledButton : UIButton {        

    override init(frame: CGRect) {
        super.init(frame: frame)
        self.backgroundColor = UIColor.blackColor()
        // more styling
    }

    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
}

Примените предустановленный стиль с расширением для UIButton:

extension UIButton {

    func setCustomStyle1() {

        self.backgroundColor = UIColor.blackColor()
        // nore styling

    }
}

Скопируйте стиль с удобным init в расширении UIButton:

extension UIButton {

    convenience init(styleFromButton button: UIButton, frame: CGRect) {

        self.init(frame: frame)

        self.backgroundColor = button.backgroundColor

    }
}

Решение Interface Builder:

Создайте новый файл Swift:

введите описание изображения здесь введите описание изображения здесь

Создать подкласс UIButton в новом файле:

class StyledButton : UIButton {

    override init(frame: CGRect) {
        super.init(frame: frame)
        style()
    }

    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        style()
    }

    private func style() {
        self.backgroundColor = UIColor.blackColor()
        // more styling
    }
}

Вернитесь в Интерфейсный Разработчик и выберите UIButton ты хочешь стиль. Выберите третью панель справа, это инспектор личности. Выберите свой подкласс в качестве класса для UIButton,

Повторите для всех кнопок стиля.

введите описание изображения здесь


Или создайте стиль в IB и Alt-Drag, чтобы сделать копию.

Другие вопросы по тегам