2015-06-14 2 views
1

Я создал UIToolBar с тремя элементами кнопки. Все работает хорошо при использовании шрифта и размера шрифта по умолчанию. Однако шрифт слишком большой, и я хочу изменить его размер. Я использовал следующий код для успешной настройки размера и цвета шрифта в нормальном состоянии, но когда, например, кнопка # 1 отключена, цвет текста остается черным как для разрешенных, так и для отключенных состояний - т.е. он не меняет цвет на серый ,Невозможно изменить атрибут цвета UIBarButtonItem в отключенном состоянии

NSDictionary *ena = @{NSFontAttributeName:[UIFont fontWithName:@"Helvetica" size:12.0], NSForegroundColorAttributeName: 
          [UIColor blackColor]}; 
NSDictionary *dis = @{NSFontAttributeName:[UIFont fontWithName:@"Helvetica" size:12.0], NSForegroundColorAttributeName: 
          [UIColor grayColor]}; 

[[UIBarButtonItem appearance] setTitleTextAttributes:ena forState:UIControlStateNormal]; 
[[UIBarButtonItem appearance] setTitleTextAttributes:dis forState:UIControlStateDisabled]; 

Я был бы признателен за некоторые отзывы о том, где я поступил не так с вышеуказанным кодом.

ответ

-1

Создать розетку для barButtonItem; предположим, что это мойBarButton. Сначала отключите его из раскадровки. Затем вызовите это ViewDidLoad()

if (myBarButton.enabled == 'NO') { 
    NSDictionary *dis = @{NSFontAttributeName:[UIFont fontWithName:@"Helvetica" size:12.0], NSForegroundColorAttributeName: 
           [UIColor grayColor]}; 
    [[UIBarButtonItem appearance] setTitleTextAttributes:ena forState:UIControlStateNormal]; 
} 

Тогда после выполнения некоторой работы, когда необходимо включить myBarButton, а затем запустить код ниже

NSDictionary *dis = @{NSFontAttributeName:[UIFont fontWithName:@"Helvetica" size:12.0], NSForegroundColorAttributeName: 
          [UIColor blackColor]}; 
[[UIBarButtonItem appearance] setTitleTextAttributes:ena forState:UIControlStateNormal]; 

На самом деле, UIControlStateDisabled не работает, как я заметил.

Смежные вопросы