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 ,如果您想要完全不同的警报,可以在 CustomAlert 上查看本教程。

于 2012-05-13T04:41:19.743 回答