我正在使用monotouch但会接受Objective-C答案。
我想直观了解UIAlertView消息是否重要。
我找到了一个Objective-C示例,说明如何在警报中显示一个图标(这里是stackoverflow上的某个地方),但文本没有环绕图标。
也许还有另一种选择。也许有办法将警报的背景颜色改为黄色?
所以我的具体问题是,是否有标准做法,或者有人推荐一个好的解决方案?
由于
答案 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。