我正在使用 monotouch,但会接受 Objective-C 的答案。
我想要一个 UIAlertView 消息是否重要的视觉指示。
我找到了一个关于如何在警报中显示图标的 Objective-C 示例(在 stackoverflow 上的某处),但文本不会环绕图标。
也许还有另一种选择。也许有一种方法可以将警报的背景颜色更改为黄色?
所以我的具体问题是这是否有标准做法,或者有人可以推荐一个好的解决方案吗?
谢谢
我正在使用 monotouch,但会接受 Objective-C 的答案。
我想要一个 UIAlertView 消息是否重要的视觉指示。
我找到了一个关于如何在警报中显示图标的 Objective-C 示例(在 stackoverflow 上的某处),但文本不会环绕图标。
也许还有另一种选择。也许有一种方法可以将警报的背景颜色更改为黄色?
所以我的具体问题是这是否有标准做法,或者有人可以推荐一个好的解决方案吗?
谢谢
Apple 的HIG强烈建议 AlertView 的外观应与背景的配色方案相协调。他们建议的唯一视觉指示是使用红色按钮进行潜在的破坏性操作。我同意@MDT 的观点,根据定义,所有警报都应该是重要的和不重要的消息(例如常规状态消息),应该以其他方式呈现。
一般来说,人们不喜欢定制太多。这是 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 上查看本教程。