Как изменить цвет фона UIBarButtonItem на iOS 7+?

122
16

Я хотел бы указать, что конкретный UIBarButtonItem включается или выключается путем изменения цвета фона. Mobile Safari использует эту функцию, чтобы указать, включен или отключен личный просмотр:


OffOn


Как я могу это сделать, так как нет свойства backgroundColor на UIBarButtonItem?

спросил(а) 2020-04-04T00:30:47+03:00 5 месяцев, 4 недели назад
1
Решение
158

Создайте UIButton и используйте его как пользовательское представление для UIBarButtonItem. Затем установите backgroundColor на слой кнопки:

UIButton* button = [UIButton buttonWithType:UIButtonTypeCustom];
[button setTitle:@"Test"];
button.layer.backgroundColor = [UIColor redColor].CGColor;
button.layer.cornerRadius = 4.0;

UIBarButtonItem* buttonItem = [[UIBarButtonItem alloc] initWithCustomView:button];
self.toolbarItems = @[buttonItem];

ответил(а) 2020-04-04T00:48:06.737481+03:00 5 месяцев, 4 недели назад
57

Вместо этого вы можете использовать только два изображения. Один для выбранного и один для невыбранного


- (void)setBackgroundImage:(UIImage *)backgroundImage forState:(UIControlState)state barMetrics:(UIBarMetrics)barMetrics

Вышеуказанная функция должна помочь вам сделать это

ответил(а) 2020-04-04T00:30:47+03:00 5 месяцев, 4 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема