2012-05-02 3 views
1

У меня есть subclassed UINavigationBar, поэтому я могу создать градиент, чтобы заполнить его. Моя проблема заключается в том, что когда я представляю контроллер навигации, пока он анимируется снизу вверх, цвет элементов кнопки на панели навигации по-прежнему остается синим (по умолчанию), и он изменяется только в том случае, если он заканчивает анимацию (когда контроллер навигации достигает вершины). Я привязался к фотографиям, чтобы помочь вам понять, в чем моя проблема.Странное поведение пользовательского UINavigationBar

enter image description here

enter image description here

+0

где вы меняете цвета? поместите свой код – meronix

+0

Я думаю, что метод изменения цвета кнопки используется вне анимации. – vishiphone

+0

У меня такая же проблема. Вы когда-нибудь находили решение? – arnorhs

ответ

-1

Вы кладете изменение цветового кода в анимированный метод только так и вместе все хорошо попробовать это.

[UIView beginAnimations:nil context:nil]; 
[self.navigationController.navigationBar.tintcolor:[uicolor red color]]; 
[self.navigationController.navigationbaritem same code here only 
[UIView commitAnimations]; 
+0

Я изменяю цвета в drawRect, в подклассе UINavigationBar. Это единственный способ добавить к нему градиент. – Cosmin

+0

все ваши изменения в навигационной панели должны быть только в режиме анимации. Я думаю, что изменение цвета вашей кнопки бара вне метода анимации – vishiphone

Смежные вопросы