Сохранить стилизованный элемент для повторного использования в других контроллерах представления
Я делаю приложение для 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, чтобы сделать копию.