Пользовательский UIAlertView с пользовательскими кнопками - PullRequest
1 голос
/ 22 июня 2011

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

Sample AlertView

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

Я следую этому руководству, но не думаю, что оно касается обработки пользовательских кнопок.

Как это сделать?Есть идеи?

Ответы [ 3 ]

1 голос
/ 22 июня 2011

Apple, похоже, не нравится, когда вы чрезмерно настраиваете UIAlertView, и я слышал о нескольких случаях, когда они отклоняли приложение из-за него.

в зависимости от того, к какой настройке вы стремитесь, я предлагаю вам создать свой собственный новый класс Alert, который анимирует, имеет фоновую тень и т. д. с кнопками, которые вы можете настроить местоположение / вид.

0 голосов
/ 02 мая 2013

К сожалению, Apple не разрешает создавать подклассы UIAlertView:

Класс UIAlertView предназначен для использования как есть и не поддерживает подклассы.Иерархия представлений для этого класса является закрытой и не должна изменяться.

Самый простой способ - создать собственный класс с аналогичным поведением.

Вот пример: http://iosdevtricks.blogspot.com/2013/04/creating-custom-alert-view-for-iphone.html

0 голосов
/ 22 июня 2011

Мне показалось, что это сообщение в блоге Джеффа Ламарша очень полезно при создании пользовательских представлений предупреждений: http://iphonedevelopment.blogspot.com/2010/05/custom-alert-views.html. Он проходит шаги по созданию пользовательского класса, поскольку изменение UIAlertView может вызвать отклонение в App Store (однако он предупреждает, что использование пользовательских методов все еще может вызвать нарушения HIG, но я сомневаюсь, что они повлияют на то, что вы пытаетесь сделать). К тому времени, как вы закончите, у вас будет собственный класс представления предупреждений, который можно добавить почти в том же стиле, что и UIAlertView:

На этом мы закончили. Мы можем сейчас использовать этот пользовательский вид оповещения именно так же, как мы используем UIAlertView:

CustomAlertView *alert = [[CustomAlertView alloc] init];
alert.delegate = self;
[alert show];
[alert release];

Он создает пользовательский вид ввода текста. Очевидно, что в вашем случае вы захотите использовать другой фон, и вместо добавления текстового поля вы будете использовать только кнопки. Так как он делает пользовательские кнопки в своем представлении, он должен покрывать все ваши потребности, если не больше.

...