Измените цвет текста UILabel при появлении UIAlertView

При первом просмотре я показываю красный заголовок в UINavigationBar. Я использую UILabel для достижения этой цели, потому что это единственный способ, который я нашел для отображения красного текста в iOS 7. Теперь, в зависимости от того, что выбирает пользователь, UIAlertView отображается над первым (который, следовательно, становится фоновым представлением). Представление предупреждений не охватывает весь экран, поэтому элементы первого (фонового) представления все еще видны. Все они серые, за исключением текста заголовка UINavigationBar. Для единообразия я хотел бы, чтобы красный заголовок тоже становился серым, когда отображается представление предупреждений.

Есть идеи, как я могу изменить цвет в тот момент?

Мой код UILabel:

UILabel *titleView = (UILabel *)self.navigationItem.titleView;
titleView = [[UILabel alloc] initWithFrame:CGRectZero];
titleView.backgroundColor = [UIColor clearColor];
titleView.font = [UIFont boldSystemFontOfSize:20.0];
//titleView.font = [UIFont fontWithName:@"Arial" size:20.0];
titleView.textColor = [UIColor redColor];

self.navigationItem.titleView = titleView;

self.title = @"View Title";

titleView.text = self.title;
[titleView sizeToFit];

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


person Armand    schedule 11.11.2013    source источник
comment
ознакомьтесь с этим решением: stackoverflow.com/a/43651395/3024579   -  person Alok    schedule 27.04.2017


Ответы (1)


[titleView setTextColor:[UIColor redColor]];

Используйте это право после, когда вы показываете, что видите оповещения.

Пример:

if (somethingBecameTrue)
{
    [yourAlertView show];
    [titleView setTextColor:[UIColor redColor]];
}

Чтобы повернуть его обратно:

- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex
{
    [titleView setTextColor:[UIColor blackColor]];
}

Чтобы проверить, отображается он или нет:

if (!yourAlertView.visible) // Note the exclamation mark (!)
{
    // Alertview is not shown yet
    [yourAlertView show];
}
person Community    schedule 11.11.2013
comment
Затем мне нужно вернуть его исходный цвет, когда UIAlertView закрывается. Есть идеи, как это сделать? Я безуспешно пытался ... - person Armand; 11.11.2013
comment
Спасибо! Последний вопрос: можно ли проверить статус UIAlertView, отображается он или закрывается. Например, если (alertView) {}? - person Armand; 11.11.2013