NavigationController UIToolbar Изменить элементы - PullRequest
2 голосов
/ 03 ноября 2011

Я хочу изменить элементы в моем UIToolbar, скрыв панель инструментов, изменив элементы (кнопку, фиксированное пространство и т. Д.) И открыв ее снова.

В настоящее время у меня на UIToolbar есть кнопка, которая при нажатии скрывает панель инструментов, вызывая [[self navigationController]setToolbarHidden:YES animated:YES];.

Как настроить эти элементы?Возможно ли использовать интерфейсный конструктор или мне нужно жестко их кодировать?

Ответы [ 3 ]

2 голосов
/ 03 ноября 2011

Это нестандартное поведение, но должно быть выполнимым.Вместо удаления и добавления новых кнопок на существующую панель инструментов вы можете вместо этого создать другую панель инструментов, которая вместо этого исчезнет.Это облегчит кодирование / отладку.В общем, для этого требуется меньше «беспорядка».

. Для достижения желаемого поведения вы можете сделать что-то вроде:

float animationDuration = .25;

[UIView animateWithDuration:animationDuration animations:*{
    // Remove the old toolbar.
    self.oldToolbar.alpha = 0;

    // Fade the new toolbar in.
    self.newToolbar.alpha = 1;
}];

В этом примере предполагается, что вы уже загрузили другую панель инструментов вnewToolbar свойство.Дайте мне знать, если вам нужна дополнительная помощь или какое-либо объяснение.

1 голос
/ 03 ноября 2011

Вы можете установить новые элементы для панели инструментов следующим образом:

[toolbar setItems:<new_items_array> animated:YES];

Это также оживит изменение, поэтому вам может не понадобиться скрывать и показывать его снова, что в целом не является хорошей практикой пользовательского интерфейса..

0 голосов
/ 03 ноября 2011

Немного странно ... это немного странно, но должно быть прекрасно:

[UIView animateWithDuration:0.5f animations:^{
    // Remove the old toolbar.
    self.oldToolbar.alpha = 0;

} completion:^(BOOL finished) {
    //add code to change toolbar.
    [UIView animateWithDuration:0.5f animations:^{
        // Fade the new toolbar in.
        self.newToolbar.alpha = 1;
    }];
}];
...