Изменение цвета пользовательского UIToolbar над клавиатурой (не просто изменение цвета текста) в iOS 7

В моем приложении я теперь использую "темный" внешний вид для клавиатуры для всех полей UITextField, где я ранее использовал "светлую клавиатуру".

Над клавиатурой для одного из текстовых полей у меня есть пользовательский UIToolbar, созданный с несколькими кнопками, позволяющими пользователю выбрать один из вариантов над клавиатурой.

Это кажется намного сложнее, чем нужно, но я пытаюсь сделать UIToolBar темным вместо светлого, и что бы я ни старался, панель инструментов всегда белая, и я могу только изменить цвет кнопок на панели инструментов. панель инструментов, а не сама панель инструментов.

Панель инструментов создана в коде:

    UIToolbar *alertToolBar = [[UIToolbar alloc] initWithFrame:CGRectMake(0.0f, 0.0f,
                                                                          self.view.window.frame.size.width, 44.0f)];

    alertToolBar.backgroundColor = [UIColor blackColor];
    //alertToolBar.tintColor = [UIColor colorWithRed:0.0f green:0.0f blue:0.0f alpha:1.0f];

    alertToolBar.translucent = NO;
    alertToolBar.items =  @[ [[UIBarButtonItem alloc] initWithTitle:@" GBP"
                                                              style:UIBarButtonItemStyleBordered
                                                             target:self
                                                             action:@selector(barButtonAddText:)],
                             [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace
                                                                           target:nil
                                                                           action:nil],
                             [[UIBarButtonItem alloc] initWithTitle:@" USD"
                                                              style:UIBarButtonItemStyleBordered
                                                             target:self
                                                             action:@selector(barButtonAddText:)],
                             [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace
                                                                           target:nil
                                                                           action:nil],
                             [[UIBarButtonItem alloc] initWithTitle:@" EUR"
                                                              style:UIBarButtonItemStyleBordered
                                                             target:self
                                                             action:@selector(barButtonAddText:)],
                             [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace
                                                                           target:nil
                                                                           action:nil],

    self.itemTextField.inputAccessoryView = alertToolBar;

Я попробовал это с закомментированным кодом выше (//alertToolBar.tintColor = [UIColor colorWithRed:0.0f green:0.0f blue:0.0f alpha:1.0f];) и полоса всегда остается белой, но только "кнопки" меняют цвет.

Как я могу изменить всю панель инструментов черным?

Любая помощь в этом была бы очень признательна!

2 ответа

Решение

Я предполагаю, что вы используете iOS 7.0 SDK, поэтому в этом случае barTint больше не работает для этого.

Вы должны будете использовать в этом случае barTintColor.

Документация Apple:

Поведение tintColor для баров изменилось на iOS 7.0. Он больше не влияет на фон панели и ведет себя так, как описано для свойства tintColor, добавленного в UIView. Чтобы тонировать фон панели, пожалуйста, используйте -barTintColor.

В этом случае должно быть:

alertToolBar.barTintColor = [UIColor colorWithRed:0.0f green:0.0f blue:0.0f alpha:1.0f];

Я думаю, что вы хотите установить:

@property(nonatomic, retain) UIColor *barTintColor
Другие вопросы по тегам