在我的第一个视图中,我在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的情况下工作,请告诉我。我在没有解决的情况下浏览了本网站上的所有相关主题。
答案 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];
}