2013-06-10 3 views
1

enter image description here i ve проблема в alertview .. Первоначально у меня было 6 кнопок в моем предупреждении. Затем мне пришлось добавить еще две кнопки в мое предупреждение. Когда я добавил еще две кнопки, размер кадра становится проблемой ..Как разместить 8 кнопок в UIAlertView

Пожалуйста, обратитесь скриншот ..

-(IBAction)FilterButton:(id)sender 
{ 
    UIAlertView *alert1 = [[UIAlertView alloc] 
          initWithTitle:nil 
          message:@"\n\n\n\n\n" 
          delegate:self 
          cancelButtonTitle:@"Cancel" 
          otherButtonTitles:@"Customer",@"Contact",@"Lead",@"Team Member",@"Ex-Team Member",@"Inactive Customer",@"All Contacts",nil]; 

    [alert1 show]; 
} 

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex 
{ 
    switch (buttonIndex) { 

     case 1: 
     { 
      qsql = [NSString stringWithFormat:@"select * from pu_Contacts where ContactType = 'CUS' and isDeleted ='0';"]; 
      [self selected]; 
      break;    
     } 
     case 2: 
     { 
      qsql = [NSString stringWithFormat:@"select * from pu_Contacts where ContactType = 'CT' and isDeleted ='0';"]; 
      [self selected]; 
      break;    
     } 
     case 3: 
     { 
      qsql = [NSString stringWithFormat:@"select * from pu_Contacts where ContactType = 'LD' and isDeleted ='0';"]; 
      [self selected]; 
      break;    
     }  
     case 4: 
     { 
      qsql = [NSString stringWithFormat:@"select * from pu_Contacts where ContactType = 'TM' and isDeleted ='0';"]; 
      [self selected]; 
      break; 
     } 
     case 5: 
     { 
      qsql = [NSString stringWithFormat:@"select * from pu_Contacts where ContactType = 'ETM' and isDeleted ='0';"]; 
      [self selected]; 
      break; 
     } 
     case 6: 
     { 
      qsql = [NSString stringWithFormat:@"select * from pu_Contacts where ContactType = 'INACUS' and isDeleted ='0';"]; 
      [self selected]; 
      break; 
     } 
     case 7: 
     { 
      qsql = [NSString stringWithFormat:@"select * from pu_Contacts where isDeleted ='0';"]; 
      [self selected]; 
      break; 
     } 
    } 
} 
+0

скриншот .... – Fogmeister

+2

@Manoj Зачем останавливаться на 8? – SK9

+0

Лучше, чтобы у вас было больше возможностей в alertview и, соответственно, используйте таблицу действий, чтобы отобразить остальные параметры. В соответствии с стандартами кодирования в этом случае пользовательский интерфейс будет довольно запутанным. –

ответ

2

я проверил свою создать код, добавив кнопку в Alertview, но его трудно управлять, поэтому я предлагаю вам с помощью UIActionSheet как сильфон кода: -

UIActionSheet *MultipleAcions = [[UIActionSheet alloc] initWithTitle:@"title" delegate:self cancelButtonTitle:@"Cancel Button" destructiveButtonTitle:nil otherButtonTitles:@"Customer",@"Contact",@"Lead",@"Team Member",@"Ex-Team Member",@"Inactive Customer",@"All Contacts",nil]; 
    MultipleAcions.actionSheetStyle = UIActionSheetStyleDefault; 
    [MultipleAcions showInView:self.view]; 

это вид Линке ниже скриншоте: -

enter image description here

и йо и может получить индекс каждой кнопки с помощью делегата пыльник UIActionSheet в: -

-(void)actionSheet:(UIActionSheet *)actionSheets clickedButtonAtIndex:(NSInteger)buttonIndex 
+0

Это лучшее использование элементов управления iOS, но для этого пользователю требуется выбрать один из 8 вариантов. Это слишком много, чтобы бросать на пользователя за один раз. – Fogmeister

3

Во-первых, нет экрана. (ОК, это исправлено сейчас).

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

Это не то, для чего стоит UIAlertView. A UIAlertView информирует пользователя о том, что что-то случилось, о чем им нужно знать.

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

Это все в Руководстве по человеческому интерфейсу.

В-третьих, если вам нужно поставить 8 вариантов плюс отменить на экране, тогда вы делаете это неправильно. Найдите другой способ сделать все доступным для пользователя без использования 8 кнопок.

Другие варианты, чтобы посмотреть на ...

Вы пишете приложение IPAP.

Вы можете поместить все опции в UITableView внутри UIPopOverController. UITableView больше подходит для отображения большого количества вариантов.

Как и выше, используйте UIPickerView внутри всплывающего окна. Опять же, это больше подходит для большого количества вариантов. Это также облегчает пользователю понимание того, что они выбирают один из вариантов.

Может быть любое количество способов сделать это.

+0

Просьба сослаться на скриншот .. – Mano

+0

Я видел скриншот. Все еще в ответе (кроме первой части) актуально. – Fogmeister

+0

Я бы порекомендовал также UITableView (в UIAlertView, например, при сканировании iOS для Wi-Fi) или UIPicker, который можно поместить в UIActionSheet с предпочтением UIPicker. – Larme

2

Почему вы не создаете представление со всеми необходимыми кнопками и не показываете его?

UIAlertView не для этой цели

Согласно Docs

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

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