如何更改警报背景?我们可以改变立场吗?

时间:2009-10-28 18:19:02

标签: iphone

如何更改提醒背景?我们可以改变立场吗? 我的意思是可以向上或向下显示它吗?

是否有可用的示例代码?

提前致谢。

3 个答案:

答案 0 :(得分:2)

您无法通过任何Apple支持的API方法。自定义UIAlertView外观的建议方法是创建自己的。

答案 1 :(得分:2)

来自iPhone Human Interface Guidelines

  

您可以指定文字,数字   按钮和按钮内容   警报,但你无法自定义   警报的背景外观   本身。

除非您有充分的理由想要自定义警报的背景颜色或其他属性,否则请不要这样做。您的应用程序将与系统的其他部分冲突,并且可能因违反上述人机界面指南而被拒绝。同样,来自iPhone Human Interface Guidelines

  

因为用户习惯了   这些的外观和行为   观点,使用它们很重要   一贯正确地在你的   应用

答案 2 :(得分:1)

你可以改变颜色。但是我没有关于position.Create继承自Alert.In drawRect的CustomAlert:你可以在CGContextSetRGBFillColor方法中指定你想要的颜色。 这是实施。 @implementation CustomAlert

- (id)initWithFrame:(CGRect)frame {
 if (self = [super initWithFrame:frame]) {
  // Initialization code
 }
 return self;
}



// Method which will draw the actual view
- (void)drawRect:(CGRect)rect {
 CGContextRef context=UIGraphicsGetCurrentContext();
 UIColor *color = [UIColor purpleColor];
 const CGFloat *arr= CGColorGetComponents(color.CGColor);
 CGContextSetRGBStrokeColor(context,0, 0, 0, 1.0);
 CGContextSetRGBFillColor(context, arr[0], arr[1], arr[2], 0.85);
 CGContextSetLineWidth(context, 1.0);
 addRoundedRectToPath(context, rect);
 // Drawing final path
CGContextDrawPath(context, kCGPathFill);
}

- (void)dealloc {
 [super dealloc];
}
@end

static void addRoundedRectToPath(CGContextRef context, CGRect rect){
 CGFloat radius = 10;
 CGFloat minx = CGRectGetMinX(rect), midx = CGRectGetMidX(rect), maxx = CGRectGetMaxX(rect);
 CGFloat miny = CGRectGetMinY(rect), midy = CGRectGetMidY(rect), maxy = CGRectGetMaxY(rect);
 CGContextMoveToPoint(context, minx, midy);
 // Add an arc through 2 to 3
 CGContextAddArcToPoint(context, minx, miny, midx, miny, radius);
 // Add an arc through 4 to 5
 CGContextAddArcToPoint(context, maxx, miny, maxx, midy, radius);
 // Add an arc through 6 to 7
 CGContextAddArcToPoint(context, maxx, maxy, midx, maxy, radius);
 // Add an arc through 8 to 9
 CGContextAddArcToPoint(context, minx, maxy, minx, midy, radius);
 CGContextClosePath(context);

}