Изменение цвета фона в UIAlertView?

Я хочу изменить цвет фона моего UIAlertView, но у него нет атрибута цвета.

Фон AlertView – это изображение. И вы можете изменить это изображение.

UIAlertView *theAlert = [[[UIAlertView alloc] initWithTitle:@"Atention" message: @"YOUR MESSAGE HERE", nil) delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil] autorelease]; [theAlert show]; UILabel *theTitle = [theAlert valueForKey:@"_titleLabel"]; [theTitle setTextColor:[UIColor redColor]]; UILabel *theBody = [theAlert valueForKey:@"_bodyTextLabel"]; [theBody setTextColor:[UIColor blueColor]]; UIImage *theImage = [UIImage imageNamed:@"Background.png"]; theImage = [theImage stretchableImageWithLeftCapWidth:16 topCapHeight:16]; CGSize theSize = [theAlert frame].size; UIGraphicsBeginImageContext(theSize); [theImage drawInRect:CGRectMake(0, 0, theSize.width, theSize.height)]; theImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); [[theAlert layer] setContents:[theImage CGImage]]; 

Я также нашел почти идентичное обходное решение, и в моем случае он работает лучше. Используя выход оксигена, я обнаружил плохой результат на экране, и контекст стал размытым. Вместо подclassа UIAlertView я реализую:

 - (void)willPresentAlertView:(UIAlertView *)alertView; 

поэтому … просто скопируйте и вставьте

 - (void)willPresentAlertView:(UIAlertView *)alertView { blah blah blah... [[alertView layer] setContents:(id)theImage.CGImage]; // to avoid the warning } 

Я недавно нуждался в этом и в итоге подclassифицировал UIAlertView. Вот код для всех, кто заинтересован.

http://kwigbo.com/post/318396305/iphone-sdk-custom-uialertview-background-color

Ну, я решил проблему по-другому. Я искал UIImageView, который содержит фоновое изображение и меняет изображение.

… шоу хорошо, возможно, не лучшее решение для изменения вида …

 @implementation CustomAlertView - (void)show { [super show]; for (UIView *view in self.subviews) { NSLog(@"%@ with %i children", view, [view.subviews count]); // change the background image if ([view isKindOfClass:[UIImageView class]]) { UIImage *theImage = [UIImage imageNamed:@"password entry bg - default.png"]; ((UIImageView *)view).image = [theImage resizableImageWithCapInsets:UIEdgeInsetsMake(49, 8, 8, 8)]; } } } @end 

Вот гораздо более недавнее решение, которое использует преимущества блоков и моделируется после TweetBot:

https://github.com/Arrived/BlockAlertsAnd-ActionSheets

Это не то, что возможно.

Либо вам нужно создать собственное представление типа оповещения (включая предоставление анимации и т. Д.), Либо использовать UIAlertView по умолчанию, поставляемый Apple.

Apple стремится не выставлять такие вещи, как цвет UIAlertView, так что пользовательский интерфейс имеет общее представление о всех приложениях. Изменение цвета из приложения в приложение будет путать с пользователем.

Добавьте в приложение среду QuartzCore и включите #import «QuartzCore / CALayer.h» в исходный файл.

Это выглядит как наиболее надежное решение для меня

http://mobile.tutsplus.com/tutorials/iphone/ios-sdk-uialertview-custom-graphics/

Недавно я нашел GRAlertView, который позволяет вам адаптировать UIAlertView в простой форме, по крайней мере, мне нравится. Вы найдете его здесь: https://github.com/goncz9/GRAlertView

Вы должны использовать это:

 UIAlertView *alert=[[UIAlertView alloc]initWithTitle:@"You are Select Row of" message:@"Human" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil]; alert.backgroundColor=[UIColor redColor]; [alert show]; [alert release]; 

он изменит цвет фона UIAlertView.

Просто используйте этот код,

  UIImage *theImage = [UIImage imageNamed:@"imageName.png"]; UIView *view=[alert valueForKey:@"_backgroundImageView"]; //Set frame according to adustable UIImageView *image=[[UIImageView alloc] initWithImage:theImage]; [image setFrame:CGRectMake(0, 0, 280, 130)]; [view addSubview:image]; 

Я не считаю, что для этого существует открытый метод или свойство. Установка backgroundColor из UIAlertView (как UIView) просто помещает цветной прямоугольный фон за вид предупреждения.

Я бы сказал, что это, вероятно, противоречит общему интерфейсу iPhone, чтобы изменить этот цвет, поэтому я не думаю, что это рекомендуется для поведения (так же, как изменение цвета фона в представлении предупреждения в Mac OS X не рекомендуемые).

  • Включить немодульный заголовок внутри фрейм-модуля
  • Как я могу изменить NSArray в Objective-C?
  • Добавление изображений в кнопки UIActionSheet, как в UIDocumentInteractionController
  • Обнаружение интернет-соединения iPhone SDK
  • Что такое NSCFDictionary?
  • Как отобразить изображение base64 в UIImageView?
  • Можем ли мы пригласить людей использовать наше приложение или отправить запрос друга из приложения через Facebook в iOS 5?
  • Как установить жирный шрифт и курсив на UILabel iPhone / iPad?
  • как отобразить тестовый баннер IAd в симуляторе
  • Рисование формы волны с помощью AVAssetReader
  • Возможно открытие всплывающих ссылок в UIWebView?
  • Interesting Posts

    Поиск отсортированной 2D-матрицы

    Доступ к freenode без портов

    Вывод аутентификации Windows ASP.NET

    Linux: сравнение структуры каталогов без сравнения файлов

    Как выбрать строку с максимальным значением в каждой группе

    Эпоха против итерации при тренировке нейронных сетей

    Как выглядит многоярусный язык ассемблера?

    Как выравнивать по центру горизонтальное меню ?

    Использование PrimeFaces с Bootstrap вызывает изменения в заполнении / калибровке / границах

    Как масштабировать / изменять размер текста в соответствии с TextView?

    Триггеры Oracle – проблема с изменяющимися таблицами

    Эффективно находим пересечение переменного числа множеств строк

    Это Firefox или Geckodriver, который создает каталог «rust_mozprofile»

    Каков наилучший способ отслеживания и записи URL-адресов, вызываемых устройством, для установки или просмотра истории просмотров?

    Фиксирование разрешений для файлов пользователей Mac, а не системы

    Давайте будем гением компьютера.