U может изменить цвет. Но я не делаю о позиции. Создайте CustomAlert, который наследует от Alert. В drawRect: вы можете указать желаемый цвет в методе 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);
}