2013-03-31 3 views
0

В настоящее время я разрабатываю приложение для iPad и хочу применить пользовательский шрифт к UIButtons на определенном экране. Я заметил подобные проблемы с другими экранами, а именно, что текст на некоторых (по-видимому случайных) UIButtons исчезает. В этом случае пользовательский шрифт применяется к некоторым кнопкам, но не к другим, опять же не кажется, что какой-либо шаблон работает, а какие нет. Я приложил скриншот ниже, чтобы попытаться дать вам представление о том, что именно я имею в виду.Только некоторые UIButtons работают с настройкой

Как я уже упоминал, на некоторых других экранах я заметил, что текст полностью исчезает с некоторых кнопок, и вместо этого им пришлось заменить изображения изображением текста.

enter image description here

Все кнопки создаются в Interface Builder. Они используют атрибутный текст, чтобы разрешить несколько строк и центрированное выравнивание. Любая помощь приветствуется.

редактировать - мой код, как следующее:

for (UIView *sub in view.subviews) { 
    UIButton *btn = (UIButton *) sub; 
    UILabel *lbl = [btn titleLabel]; 
    [lbl setFont: myFont size: mySize]; 
} 
+1

Приписываемых или плоский текст? Что означает 'UIControlState'? Возможно, потребуется проводка некоторого кода. – zaph

+0

@Zaph - обновленный вопрос с моим кодом. Использование атрибутивного текста. –

+0

Вы проверили, что все ваши кнопки находятся в массиве представлений, которые вы повторяете, путем регистрации их содержимого в цикле, например? Кроме того, где этот цикл выполняется в вашем контроллере вида? – Darren

ответ

2

Из комментариев:

Вы можете достичь в центре и название многострочных этикетки в UIButtons без использования NSAttributedStrings, добавив следующие строки в цикл:

lbl.textAlignment = UITextAlignmentCenter; 
lbl.numberOfLines = 0; 
3

Чтобы использовать приписывал страховать элементы IB настроены на использование приписываемого текста, а не простой текст.

Чтобы установить приписываемое название для NSButton использования:

- (NSAttributedString *)attributedTitleForState:(UIControlState)state 

для NSLabel использования:

@property(nonatomic,copy) NSAttributedString *attributedText 

Конечно вы не можете отнести текст все, что вы делаете, просто установив шрифт и выравнивание.

Для нескольких строк текста набора:

@property(nonatomic) NSInteger numberOfLines 

в зависимости от обстоятельств.

+0

не смог получить Attributed Text, работающий вообще, так что пошли с ответом Даррена. Спасибо за вашу помощь. –