Как отобразить пользовательский вид в UIActionSheet? - PullRequest
3 голосов
/ 11 апреля 2010

У меня есть UIView со средством выбора даты, которое я хотел бы отобразить в листе действий. Я использую следующий код:

-(IBAction) button_click:(id)sender{
//UIActionSheet *sheet = [[UIActionSheet alloc] initWithTitle:@"the title" delegate:nil cancelButtonTitle:@"Cancel" destructiveButtonTitle:@"Destructive" otherButtonTitles:@"other", nil];

UIActionSheet *sheet = [[UIActionSheet alloc] init];
ActionSheetController *actionSheet = [[ActionSheetController alloc]  initWithNibName:@"ActionSheetView" bundle:nil];    
[sheet addSubview:actionSheet.view];

[sheet showInView:self.view];
}

То, что я получаю, это верхняя часть нового вида, идущая снизу, и все. Если я прокомментирую две средние строки кода и раскомментирую верхнюю часть, чтобы отобразить обычный лист действий, он будет работать нормально. Есть идеи, что я могу делать не так?

Ответы [ 4 ]

1 голос
/ 20 ноября 2012

используйте UIActionSheetDelegate и после этого вы можете с этим делегатом добавить, например, изображение к кнопке оповещения

- (void)willPresentActionSheet:(UIActionSheet *)actionSheet{

   UIImageView *sample = [[UIImageView alloc] initWithImage:[UIImage       
   imageNamed:@"Someimage.png"]];
   [actionSheet addSubView:sample];

}
0 голосов
/ 17 августа 2014

Возможно, вы захотите проверить альтернативу UIActionSheet, которую я сделал, которая позволяет отображать пользовательские представления содержимого без каких-либо грязных хаков: https://github.com/JonasGessner/JGActionSheet Он также имеет некоторые другие преимущества перед UIActionSheet!

0 голосов
/ 11 апреля 2010

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

UIActionSheet *menu = [[UIActionSheet alloc] initWithTitle:@"Date Picker" delegate:self cancelButtonTitle:nil destructiveButtonTitle:nil otherButtonTitles:nil];
0 голосов
/ 11 апреля 2010

Я не верю, что вы можете указывать пользовательские представления в UIActionSheet. Насколько я понимаю, вы можете отображать только заголовок и 1 или более кнопок. Ниже описание UIActionSheet в документации Apple:

Используйте класс UIActionSheet, чтобы предоставить пользователю набор альтернатив для выполнения данной задачи. Вы также можете использовать листы действий, чтобы предложить пользователю подтвердить потенциально опасное действие. Лист действий содержит необязательный заголовок и одну или несколько кнопок, каждая из которых соответствует действию, которое необходимо выполнить.

Справочник по классам UIActionSheet

...