iPad - цвет рамки Popover - PullRequest
       14

iPad - цвет рамки Popover

4 голосов
/ 08 марта 2011

Итак, у меня есть приложение с разделенным видом, над которым я работаю, и обнаружил странную ошибку пользовательского интерфейса. Вот моя лучшая попытка объяснить это. Если я загружаю приложение в альбомном режиме, верхняя панель навигации корневого контроллера имеет правильный цвет. Я делаю это в методе ViewWillAppear rootView:

self.rvBar.tintColor = [UIColor colorWithRed:59.0/255
                               green:115.0/255
                    blue:185.0/255
                       alpha:1];

Теперь, когда я поворачиваю устройство и отображаю вид с помощью всплывающего окна, оно отображается черным цветом. Вы знаете, как изменить цвет поповера на такой же синий? Я попытался сделать это в willHide/ShowViewController методах в делегате контроллера разделенного представления, но, похоже, ничего не работает.

Теперь, во второй части, когда я поворачиваюсь назад к ландшафту, снова вызывается линия выше, но вместо отображения синей полосы она становится серой! Кто-нибудь видел, что splitview ведет себя так же раньше, и если да, что нужно сделать, чтобы это исправить? Заранее спасибо.

Ответы [ 4 ]

2 голосов
/ 08 марта 2011

Я пробовал это на базовом проекте SplitViewController (в RootViewController):

- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];

    self.navigationController.navigationBar.tintColor = [UIColor colorWithRed:59.0/255
                                                                        green:115.0/255
                                                                         blue:185.0/255
                                                                        alpha:1];
}

, и он отлично работает.Когда вы говорите, что поповер остается черным, вы имеете в виду, что фон заголовка черный?(для меня это синий, а границы всплывающих окон черные).

Может быть, проблема в другом месте, как вы устанавливаете свойство rvBar?

1 голос
/ 08 апреля 2011

Я нашел решение этой проблемы, если кому-то все еще интересно.

После некоторых копаний я обнаружил, что есть ошибка Apple, которая отключает модификацию свойства tintColor UIToolBar, и она застреваетв каком бы состоянии он ни находился. Мне пришлось отправить сообщение свойству tintColor, чтобы сообщить, что оно модифицируемо.

extern id objc_msgSend (id, SEL, BOOL);
objc_msgSend([(UINavigationController *)aViewController navigationBar], @selector(_setDisableCustomTint:), NO);
/* Set the tintColor again */
[(UINavigationController *)aViewController navigationBar].tintColor = [UIColor colorWithRed:59.0/255
                                                                                      green:115.0/255
                                                                                       blue:185.0/255
                                                                                      alpha:1];

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

0 голосов
/ 22 сентября 2011

вы также можете изменить панель навигации (контроллера Rootview) через Interface Builder;просто выберите панель навигации в списке слева и измените свойство оттенка, выбрав матрицу rgb или любым другим способом, который вы выбрали.

0 голосов
/ 08 марта 2011

Вы не можете изменить Popover tintColor, свойство не существует.

Для получения дополнительной информации о Popover, проверьте UIPopoverController Class Reference.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...