Intereting Posts
Как сделать очень гладкую вторую часовую ручную анимацию (без тикания движения), как часы iPad Как настроить цвет highlighed текста в UISegmentedControl в iOS5? Как удалить рабочую копию из XCode Source Control? Создание сервера-заглушки для iOS (Mocking NSUrlConnection) Получить «метку времени» из изображения Apple несколько раз отклоняется от Apple использование coredata для хранения / кэширования нестандартных типов данных iOS ipa убивается сразу после нажатия на значок приложения Как настроить пользовательский шрифт на UILabel в раскадровке Веб-приложение клиент-сервер с сервером клиента И, работающим на iPhone, возможно? Как программно заполнять значения регистра коммутатора? firebase, запрашивающая ключевой идентификатор при активации для приложения iOS Ошибка '*** Коллекция <__ NSCFDictionary: 0x563560> была мутирована при перечислении.' MKOverlays объединяет графические плитки и KML iPad UISplitViewController: Развернуть мастер вместо полноэкранного просмотра?

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

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

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

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

 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