Можно ли как-то добавить миниатюру icn в лист действий?

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

это мой текущий метод лист действий:

- (void)tapResponder {

    NSLog(@"Tap!");

    UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:@"this is a title"
                                                             delegate:self
                                                    cancelButtonTitle:@"Cancel"
                                               destructiveButtonTitle:nil
                                                    otherButtonTitles:@"one", @"two", nil];
    [actionSheet showInView:self.view];
}

но мне действительно нравится оставаться с ios design, поэтому, пожалуйста, дайте мне крутое решение:))

thankssss!

2 ответа

Очень возможно, очень легко реализовать:

Это работает и с новым UIAlertController:

UIAlertController *alertC = [UIAlertController alertControllerWithTitle:nil message:nil preferredStyle:UIAlertControllerSytleActionSheet];

//Add your Actions
...
UIAlertAction *snapshot = [UIAlertAction actionWithTitle:@"Snapshot" style:UIAlertActionSytleDefault handler:^(UIAlertAction *action) {
}
//create a UIImage to display since it's technically a tableView:
UIImage *snapshotImage = [UIImage imageNamed:@"snapshot.png"];
//add it to the UIAlertAction of your choosing 
[snapshot setValue:snapshotImage forKey:@"image"];
...
[alertC addAction:snapshot];
[self presentViewController:alertC animated:YES completion:nil];

До iOS 8 это можно сделать так:

UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:@"this is a title"
                                                         delegate:self
                                                cancelButtonTitle:@"Cancel"
                                           destructiveButtonTitle:nil
                                                otherButtonTitles:@"one", @"two", nil];

[[[action valueForKey:@"_buttons"] objectAtIndex:0] setImage:[UIImage imageNamed:@"yourImage.png"] forState:UIControlStateNormal];

[[[action valueForKey:@"_buttons"] objectAtIndex:0] setImage:[UIImage imageNamed:@"yourImage_Highlighted.png"] forState:UIControlStateHighlighted];

[actionSheet showInView:self.view];

Пара замечаний по этому поводу: убедитесь, что вы правильно выбрали размер изображения, какими бы ни были размеры H x W, насколько огромной станет строка, как только она будет вставлена ​​в лист действий. Так что используйте что-то вроде 30х30. Кроме того, любой цвет вашего изображения будет по умолчанию с синим оттенком. Кроме того, это не считается общедоступным API, приложения одобряются таким образом, но вы рискуете

Может быть, это поможет:

for (UIView *subview in actionSheet.subviews) {
    if( [subview isKindOfClass: [UIButton class]] ){
        UIButton* btn = (UIButton*) subview;
        [btn setImage:[UIImage imageNamed: @"imageName"] forState:UIControlStateNormal];
    } 
}
Другие вопросы по тегам