Как изменить фон оповещения? и можем ли мы изменить свою позицию? - PullRequest
2 голосов
/ 28 октября 2009

Как изменить фон оповещения? и можем ли мы изменить свою позицию? Я имею в виду, возможно ли отобразить его вверх или вниз?

Есть ли образец кода?

Заранее спасибо.

Ответы [ 3 ]

2 голосов
/ 29 октября 2009

Из Руководства по интерфейсу пользователя iPhone :

Вы можете указать текст, номер кнопок и их содержание в оповещение, но вы не можете настроить фоновое появление оповещения сам по себе.

Если у вас нет веских причин для настройки цвета фона или других свойств оповещения, не делайте этого. Ваше приложение будет конфликтовать с остальной частью системы, и может быть отклонено за нарушение вышеупомянутых рекомендаций по интерфейсу пользователя. Опять же, из Руководства по интерфейсу пользователя iPhone :

Потому что пользователи привыкли к внешний вид и поведение этих мнения, важно использовать их последовательно и правильно в вашем применение.

2 голосов
/ 28 октября 2009

Вы не можете использовать любые поддерживаемые Apple методы API. Рекомендуемый способ настройки внешнего вида UIAlertView - создать свой собственный.

1 голос
/ 30 октября 2009

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);

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...