Я программно создал UIBarButton со следующим кодом:
UIButton * rightButton = [UIButton buttonWithType:UIButtonTypeCustom];
[rightButton setFrame:CGRectMake(0, 0, 81, 30)];
[rightButton setBackgroundColor:[UIColor clearColor]];
rightButton.layer.borderColor = [UIColor blackColor].CGColor;
rightButton.layer.borderWidth = 0.5f;
rightButton.layer.cornerRadius = 5.0f;
rightButton.titleLabel.font = [UIFont fontWithName:@"HelveticaNeue-Bold" size:12];
[rightButton setTitleShadowColor:[UIColor blackColor] forState:UIControlStateNormal];
[rightButton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
//set text according to sign in status
if (signIn) {
[rightButton setTitle:@"5 votes left" forState:UIControlStateNormal];
} else {
[rightButton setTitle:@"Sign in" forState:UIControlStateNormal];
}
UIBarButtonItem * rightBarButton = [[UIBarButtonItem alloc] initWithCustomView:rightButton];
self.navigationItem.rightBarButtonItem = rightBarButton;
Полученная кнопка имеет желаемый аспект, но теперь мне нужно, чтобы при выделении статуса кнопки был эффект градиентазатемнение становится черным, чтобы пользователь знал, что он нажал кнопку, потому что сейчас, когда я нажимал кнопку, с видом ничего не происходит, поэтому у пользователя нет возможности узнать, что он нажал кнопку.
Я хочу изучить выбор, который НЕ включает установку фоновых изображений для желаемых состояний, потому что текст кнопки может динамически изменяться в зависимости от конфигурации приложения, поэтому мне нужно сделать это полностью с помощью кода.