Я создал подкласс Swift для UILabel
в своем приложении, чтобы управлять его стилем во всех представлениях, чтобы потом было легче изменять стили. Я знаю, что для преобразования строки в верхний регистр, я могу просто использовать либо uppercased()
для достижения этого.
Однако проблема заключается в том, что когда я использую uppercased()
или capitalized
в подклассе для текстового свойства UILabel
, оно не работает во время выполнения. Что странно, так это то, что он корректно отображается на раскадровке (с @IBDesignable
), но во время выполнения показывает некапитализированную строку.
Например, у меня есть код, подобный этому в подклассе UILabel
:
textColor = ...
font = UIFont(name: "Avenir-Medium", size: 12.0)
text = text!.uppercased()
А затем в контроллере вида у меня есть код, подобный этому:
label_noWeightMessage.text = "No weight logs this week..."
Цвет и шрифт применяются правильно, за исключением изменения регистра. Я что-то здесь упускаю?
В раскадровке текст отображается как «НЕТ ВЕСА ЖУРНАЛОВ НА ЭТОЙ НЕДЕЛЕ ...»
но в симуляторе во время выполнения он возвращается к исходному случаю.
Я знаю, что могу просто напечатать текст заглавными буквами. Но это не то, что я хочу. Я хочу иметь возможность повторно использовать стилизацию на всех экранах без необходимости перепечатывать все тексты UILabel
и просто изменять их в одном месте.
Спасибо!