Как изменить текст метки, чтобы он контрастировал с цветом фона панели инструментов в UISplitView? - PullRequest
0 голосов
/ 03 октября 2011

При использовании UISplitViewController от Apple главный вид имеет черную панель инструментов в портретном режиме и серый в альбомной ориентации.

Я создал метку внутри UIView на панели инструментов, как описано здесь: Добавление UILabel к UIToolbar , но по умолчанию текст черный, что означает, что он виден только в альбомной ориентации.mode.

Как мне кодировать контроллер представления, чтобы он мог изменять цвет текста, чтобы он всегда был виден, и в идеале, чтобы он соответствовал принципам работы приложений Apple, таких как Mail (белый на портретном и темно-серый на ландшафтном)?


... позже ...

Следуя указаниям в ответе Алана Мура, я решил использовать такой код:

UIInterfaceOrientation o = [UIApplication sharedApplication].statusBarOrientation;
if (UIDeviceOrientationIsPortrait(o)) 
    label.textColor = [UIColor whiteColor];
else
    label.textColor = [UIColor darkTextColor];

Это называетсяиз моих методов viewDidLoad и didRotateFromInterfaceOrientation.Мне кажется, что didRotate лучше, чем shouldRotate для этого случая.

Также обратите внимание, что я запрашиваю statusBar, потому что, на мой взгляд, self.interfaceOrientation всегда возвращает 1. Это также отмечается здесь: Определить UIInterfaceOrientationiPad .

Не уверен на 100%, что darkText - правильный цвет для ландшафта.

1 Ответ

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

Я бы добавил код к

- (BOOL)shouldAutorotateToInterfaceOrientation:(...) {
}

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

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