0

私の最初のビューでは、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 なしで機能させる方法があれば教えてください。このサイトのすべての関連トピックを解決せずに調べました。

4

1 に答える 1

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];
}
于 2013-11-11T14:59:42.017 に答える