Думаю, вы хотите что-то вроде этого:
Вид черного оповещения http://img.skitch.com/20100405-n2ka11en1u63kcpfu6x7et29mc.jpg
Чтобы добиться этого, я просто разделил представление предупреждений на подклассы, чтобы я мог добавить немного своего собственного кода.
Я создал вид фонового изображения, в который поместил черную версию окна предупреждения.
И когда вызывается drawRect, я изменяю размер фона изображения, чтобы получить правильную высоту и ширину.
Это что-то вроде хака, но это не нарушает никаких рекомендаций Apple (у меня есть приложение в магазине, использующее это).
Чтобы получить хорошее фоновое изображение, я просто извлек изображения из набора UI (поищите в Google, и вы узнаете, как это сделать) и просто сделал черную версию вместо синей.
Кнопки на самом деле прозрачные и выбирают любой цвет под ними. Поэтому не нужно их менять.
Надеюсь, это поможет.
Это действительно возможно. И довольно легко. Всего около 5 строк кода; -)
Редактировать: спросите, и вы получите
@implementation BlackAlertView
- (void) drawRect:(CGRect) rect
{
//Force our background image to be the right size.
_backgroundImageView.frame = rect;
}
- (void) dealloc
{
ReleaseAndNull(_backgroundImageView);
[super dealloc];
}
- (void)show
{
UIImage *alertBoxImage = [[UIImage imageNamed:@"UIPopupAlertSheetBackground_black.png"] stretchableImageWithLeftCapWidth:0 topCapHeight:40];
_backgroundImageView = [[UIImageView alloc] initWithImage:alertBoxImage];
[self addSubview:_backgroundImageView];
[self sendSubviewToBack:_backgroundImageView];
[super show];
}
@end
Как я уже сказал, это не мурлыкание, а на самом деле это всего несколько строк Но он выполняет свою работу.
Крис.