Styling UILabel с использованием прокси-сервера UIAppearance

У меня есть несколько элементов UILabel в моем приложении, и я ищу простой способ их стилизации с использованием объекта UIAppearance Proxy. Мой нынешний подход заключается в создании различных подклассов UILabel, оснащенных декоратором UI_APPEARANCE_SELECTOR, чтобы быть доступным, хотя [UILabelSubclass appearance] вызывает. Вы можете найти источники, которые я использую в качестве ссылки здесь и здесь . Проблема в том, что я не хочу устанавливать размер шрифта, но только семейство шрифтов, полагающееся на размер, определенный в раскадровке.

Как я могу установить это в подклассе?

Solutions Collecting From Web of "Styling UILabel с использованием прокси-сервера UIAppearance"

Я думаю, вы можете попробовать в своем подклассе что-то вроде:

 UIFont *newFont = [UIFont fontWithName:@"YourFontName" size:self.font.pointSize]; self.font = newFont 

Вот простая категория, которая работает с прокси-серверами UIAppearance:

 @interface UILabel (FontName) - (void)setFontName:(NSString *)name UI_APPEARANCE_SELECTOR; @end @implementation UILabel (FontName) - (void)setFontName:(NSString *)name { self.font = [UIFont fontWithName:name size:self.font.pointSize]; } @end 

Благодаря этому сообщению, а также сообщение в блоге от Peter Steinberger ( http://petersteinberger.com/ ), я смог получить что-то вместе, что работает для меня:

 @interface UILabel (FontAppearance) @property (nonatomic, copy) UIFont *appearanceFont UI_APPEARANCE_SELECTOR; @end @implementation UILabel (FontAppearance) - (void)setAppearanceFont:(UIFont*)font { [self setFont:font]; } -(UIFont*)appearanceFont { return [self font]; } @end