2010-12-16 3 views
12

Я заметил, что когда я удаляю приложение с моего домашнего экрана iPhone, появляется предупреждающее представление, показывающее кнопку «Удалить» слева и «Отмена справа». Однако, когда я создаю функцию удаления в своем приложении с помощью UIAlertView, кнопки отображаются только с помощью «Отмена слева» и «Удалить» справа.изменить положение кнопки отмены в UIAlertView?

Я хочу, чтобы мое приложение совместимо с ОС, но я не могу понять, как сделать кнопку «Отмена» первой. Кто-нибудь знает?

UIAlertView *alert = [[UIAlertView alloc] 
         initWithTitle:@"Delete Song" 
         message:@"Are you sure you want to delete this song? This will permanently remove it from your database." 
         delegate:self 
         cancelButtonTitle:@"Cancel" 
         otherButtonTitles:@"Delete", nil]; 

Я попытался установить alert.cancelButtonIndex = 1, но это не повлияло.

ответ

4

Возможная причина, по которой Apple использовала вид предупреждения на главном экране, заключалась в том, что он однажды попросил пользователей оценить приложения, которые они удаляли (не больше). Вероятно, они сделали кнопку «Отмена» более светлой, потому что это считалось деструктивным действием (удаляет приложение и его данные).

Я думаю, вы можете отменить названия (cancelButtonTitle:@"Delete" otherButtonTitles:@"Cancel", nil) и обрабатывать клики на этих кнопках наоборот (не уверен, что Apple сделала то же самое). Это было бы немного неудобно; как насчет использования листа действий?

+0

Хм, знаете ли, что стандарт для других частей ОС? Я не могу придумать никаких других примеров того, где искать это. В любом случае, если удаление приложения с домашнего экрана использует нестандартную настройку, тогда мне не нужно это сопоставлять. – arlomedia 2010-12-16 02:02:14

+0

@arlomedia: Я не видел никаких других предупреждений об удалении. Оба предупреждения SMS и календаря помещают их кнопки отмены (Close) слева, как и SDK. AFAIK, где-либо еще что-то скрывает (фотографии, контакты, события календаря, заметки, плейлисты iPod) использует листы действий. – BoltClock 2010-12-16 02:10:05

52

Ах, я просто понял, как это изменить. Аргумент cancelButtonTitle не является обязательным, так что вы можете добавить пользовательскую кнопку в каком бы положении вы хотите, а затем указать, что, как кнопка отмены, как это:

UIAlertView *alert = [[UIAlertView alloc] 
         initWithTitle:@"Delete Song" 
         message:@"Are you sure you want to delete this song? This will permanently remove it from your database." 
         delegate:self 
         cancelButtonTitle:nil 
         otherButtonTitles:@"Delete", @"Cancel", nil]; 
alert.cancelButtonIndex = 1; 

Это ставит на кнопку Удалить левую и кнопку Отмена на и выделите кнопку «Отмена».

Смежные вопросы