1

私は monotouch を使用していますが、Objective-C の回答を受け入れます。

UIAlertView メッセージが重要かどうかを視覚的に示してほしい。

アラートにアイコンを表示する方法の Objective-C の例 (stackoverflow のどこか) を見つけましたが、テキストがアイコンを囲みません。

おそらく、別の代替手段があります。アラートの背景色を黄色に変更する方法はありますか?

したがって、私の具体的な質問は、これに対する標準的な慣行があるかどうか、または誰かが適切な解決策を推奨できるかどうかです。

ありがとう

4

2 に答える 2

2

AppleのHIGは、AlertViewの外観を背景の配色と調整する必要があることを強調しています。彼らが示唆する唯一の視覚的兆候は、潜在的に破壊的な行動のための赤いボタンの使用です。私は@MDTに同意します。すべてのアラートは、定義上、重要で重要ではないメッセージ(たとえば、ルーチンのステータスメッセージ)であり、他の方法で表示される必要があります。

于 2012-05-13T06:14:01.960 に答える
0

ただし、一般的に、人々はあまりカスタマイズしないことを好みます。Apple による UI ガイドラインを次に示します。はい、UIAlertView をカスタマイズできますが、そのためにはそれをサブクラス化し、そのメソッドをオーバーライドする必要があります:-

@interface CustomAlertView : UIAlertView

@end

.m ファイルでメソッド layoutSubviews:- をオーバーライドします。

- (void)layoutSubviews
{
    for (UIView *subview in self.subviews){ //Fast Enumeration
        if ([subview isMemberOfClass:[UIImageView class]]) {
            subview.hidden = YES; //Hide UIImageView Containing Blue Background
        }

        if ([subview isMemberOfClass:[UILabel class]]) { //Point to UILabels To Change Text
            UILabel *label = (UILabel*)subview; //Cast From UIView to UILabel
            label.textColor = [UIColor colorWithRed:210.0f/255.0f green:210.0f/255.0f blue:210.0f/255.0f alpha:1.0f];
            label.shadowColor = [UIColor blackColor];
            label.shadowOffset = CGSizeMake(0.0f, 1.0f);
        }
    }
}

そして、 drawRect をオーバーライドする必要があります。まったく別の Alert が必要な場合は、CustomAlert でこのチュートリアルを参照してください。

于 2012-05-13T04:41:19.743 に答える