Настройка UIAlertView - PullRequest
       21

Настройка UIAlertView

8 голосов
/ 15 февраля 2009

У любого есть код, чтобы сделать это:

UIAlertViewHack
(источник: booleanmagic.com )

или, что еще лучше, сетка кнопок 3x2 с изображениями, использующими объект UIAlertView?

Меня не волнует текстовое поле, мне нужны кнопки в сетке (желательно с изображениями, а не текстом).

Ответы [ 5 ]

27 голосов
/ 16 февраля 2009

Я думаю, что вам лучше всего забыть о настройке вида UIAlert и создать собственный вид.

Во-первых, то, что вы показываете, на самом деле не является «предупреждением», поэтому оно противоречит тому, для чего предназначен UIAlertView. Это означает, что вы изменяете парадигму пользовательского интерфейса для пользователя, что никогда не было хорошей идеей.

Во-вторых, было бы гораздо проще анимировать собственное представление на месте, чем пытаться взломать UIAlertView и заставить его делать то, что вы хотите.

11 голосов
/ 23 июля 2009

Сначала вам нужно увеличить окно оповещения, чтобы оно соответствовало вашим элементам управления, но оно должно быть расположено в центре.

Для этого вместо установки размера кадра текст сообщения с "\ n" будет иметь значение necc. e.g.:

alert = [[UIAlertView alloc] initWithTitle:@"Rate this picture."
message:@"Tap a star to rate.\n\n\n\n " /*------ look at here!!----*/
delegate:self
cancelButtonTitle:nil
otherButtonTitles:nil];

Затем используйте UIAlertViewDelegate для просмотра предупреждений.

переопределить его, viewWillAppear: добавьте свои кнопки и установите их рамки вручную в нужном месте.

OR: создайте полное представление с помощью контроллера представления и добавьте представление в окно оповещения, например:

[myalertview addSubvew:mycomplexalert];

Надеюсь, это поможет вам:)

Я использую поля предупреждений для ввода рейтинга с изображениями звезд, твиттером, обратной связью и т. Д.

ОБНОВЛЕНИЕ iOS7:

Для iOS 7 создайте свой собственный вид с компонентами и установите его как вспомогательный вид alertview:

[alert setValue:imageView forKey:@"accessoryView"]; 

Это просто: -)

6 голосов
/ 13 апреля 2012

Я написал почти идеальную замену UIAlertView, которая также полностью настраивается. Посмотрите CODialog , если он соответствует вашим потребностям.

6 голосов
/ 23 августа 2009

В этом руководстве описывается, как создать подкласс UIAlertView для ввода текстового поля ввода. В нем объясняется, как расширить представление, добавить подпредставления (например, текстовые поля или изображения) и выполнить преобразование, чтобы переместить окно вверх на экране.

4 голосов
/ 16 февраля 2009

Для этого нет встроенных компонентов. UIAlertView должен просто иметь текст и кнопки в соответствии с документом HIG.

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

Надеюсь, это поможет.

...