2016-08-10 11 views
4

Я хочу установить цвет кнопки «Done» на панели навигации, как это изображение:Как установить цвет `rightBarButtonItem` на панели навигации?

enter image description here

Хотя, я поставил код, self.doneButton.enabled = NO; но кнопку Готово еще имеет белый цвет. Он не меняет цвет, как изображение.

Как установить код для изменения цвета текста, сделанного кнопкой, аналогично кнопке «Готово» на изображении выше? Пожалуйста, помогите мне решить эту проблему. Я ценю вашу помощь.

+0

Какой шрифт вы используете? о_О –

ответ

1

Добавление следующей строки после отключения кнопки может помочь (не тестировалось, хотя)

self.navigationItem.rightBarButtonItem.tintColor = [UIColor lightGrayColor]; 
4

для изменения цвета использования barbutton

Цель C

self.navigationItem.rightBarButtonItem = yourRightbarbuttonName; 
self.navigationItem.rightBarButtonItem.tintColor = [UIColor blueColor]; // add your color 

Swift

или набор из доски Story Set bat button color

self.navigationItem.rightBarButtonItem = yourRightbarbuttonName 
self.navigationItem.rightBarButtonItem.tintColor = UIColor.blueColor() 

если вы хотите показать правый barbutton использовать

цели C

self.navigationItem.rightBarButtonItem.enabled = YES; 

Swift

self.navigationItem.rightBarButtonItem.enabled = true 

если вы хотите скрыть правый barbutton Используйте

Objective C

self.navigationItem.rightBarButtonItem.enabled = NO; 

Swift

self.navigationItem.rightBarButtonItem.enabled = false 
1

Вы можете установить его XIB/раскадровку как на картинке Set bar button color

или вы можете указать свойство - tintColor вашего элемента barbutton.

0

Спасибо, ребята, за поддержку. Я также изменяю код, как вы, но цвет текста кнопки «Готово» не может измениться. Теперь я нашел хорошее решение для этой проблемы.

Во-первых, создать общую функцию так:

- (void)changeStatusOfRightBarButton:(BOOL)enabled withColorAlpha:(CGFloat)numberAlpha { 
    _doneButton.enabled = enabled; 
    [[UIBarButtonItem appearanceWhenContainedIn:[UINavigationBar class], nil] 
    setTitleTextAttributes: 
    @{NSForegroundColorAttributeName:[UIColor colorWithHexString:@"FFFFFF" alpha:numberAlpha], 
    NSFontAttributeName:[UIFont fontAvenirNextRegularWithSize:15.0f] 
    } 
    forState:UIControlStateNormal]; 

}

и во-вторых, я применять его в viewDidload так:

if (self.noteTextView.text.length == 0) { 
    [self.noteTextView becomeFirstResponder]; 
    [self changeStatusOfRightBarButton:NO withColorAlpha:0.44f]; 

}

Когда я применить этот код Кнопка «Готово» изменила цвет.

1

Try This

UIBarButtonItem *rightBarButton=[[UIBarButtonItem alloc]initWithTitle:@"Done" style:UIBarButtonItemStylePlain target:self action:@selector(editProfileClick)]; 
rightBarButton.tintColor=[UIColor whiteColor]; 
self.navigationItem.rightBarButtonItem = rightBarButton; 


-(void)editProfileClick 
{ 
//your methods 
} 
Смежные вопросы