我如何直观地指出UIAlertView很重要?

时间:2012-05-13 04:01:04

标签: ios xamarin.ios uialertview

我正在使用monotouch但会接受Objective-C答案。

我想直观了解UIAlertView消息是否重要。

我找到了一个Objective-C示例,说明如何在警报中显示一个图标(这里是stackoverflow上的某个地方),但文本没有环绕图标。

也许还有另一种选择。也许有办法将警报的背景颜色改为黄色?

所以我的具体问题是,是否有标准做法,或者有人推荐一个好的解决方案?

由于

2 个答案:

答案 0 :(得分:2)

Apple的HIG强调建议AlertView的外观应该与背景的配色方案相协调。他们建议的唯一视觉指示是使用红色按钮进行潜在的破坏性行为。我同意@MDT,根据定义,所有警报应该是重要的,并且非重要的消息(例如例行状态消息)应该以其他方式呈现。

答案 1 :(得分: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,如果你想要完全不同的警报,你可以看到这个tutorial on CustomAlert