弹出UIAlertView时更改UILabel文本颜色

时间:2013-11-11 14:53:38

标签: ios objective-c uilabel uialertview uicolor

在我的第一个视图中,我在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];

我还尝试在不使用UILabel的情况下更改UINavigationBar标题的颜色,使其从原始的黑色变为红色而没有成功。 UILabel是我的备份。但是,如果有一种方法可以让它在没有UILabel的情况下工作,请告诉我。我在没有解决的情况下浏览了本网站上的所有相关主题。

1 个答案:

答案 0 :(得分: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];
}