Я, по сути, хочу, чтобы перечисление UIColor
было разбито, какая команда будет их использовать. Надежда состоит в том, что к нему можно было легко получить доступ. Что-то вроде:
UIColor.Residential.white
или UIColor.Commercial.white
Сложность в том, чтобы найти что-то, что работает как в Swift, так и в Objective- C. Попытка всякого рода @ obj c и @objMembers перед объявлениями расширения и класса поставила меня в тупик. Есть ли образец для такого рода вещей?
Было бы идеально что-то вроде нижеприведенного.
extension UIColor {
@objc class Residential {
static let navbarBlue = UIColor.color(hexString: "003865")
}
@objc class Commercial {
static let navbarBlue = UIColor.color(hexString: "010101")
}
}
Прямо сейчас, я использую ниже, и это работает нормально, но я не нравится дублирование имен.
extension UIColor {
@objc static let residentialDarkBlueNavBar = UIColor.color(hexString: "003865")
@objc static let commercialLightBlueNavBar = UIColor.color(hexString: "0B60BB")
@objc static let residentialBackgroundNavBar = UIColor.color(hexString: "0E49AD")
@objc static let commercialBackgroundGray = UIColor.color(hexString: "F2F2F6")
}
Редактировать
Другой вопрос, на который я ссылался, рекомендует вызывать методы класса для вычисления цветов из гекса. Но это переменные состояния c, которые не нужно вычислять при вызове. Да, снижение производительности незначительно, но я хотел бы получить доступ к организованным переменным stati c в Swift и Obj C без вызова метода каждый раз. Если это невозможно, я сделаю то, что говорит другой вопрос. Я просто хочу знать, если это так.
Спасибо!