Как представить альтернативные варианты в пользовательском интерфейсе iPhone? - PullRequest
1 голос
/ 11 марта 2011

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

Для ясности, это вид, который покрывает половину экрана, обычно с кнопками для выбора различных параметров.Когда я спрашивал о стандартном способе, я имел в виду UITableView, UIAlertView, UIScrollView и т.д ...

iphone screenshot

Ответы [ 2 ]

8 голосов
/ 11 марта 2011

Вы ищете UIActionSheet: http://developer.apple.com/library/ios/documentation/uikit/reference/UIActionSheet_Class/Reference/Reference.html


Перед использованием этих (или любого другого элемента пользовательского интерфейса) также проверьте, что говорится в Руководстве по интерфейсу пользователя iOS о том, как их следует использовать.Я часто вижу злоупотребления листами действий, к сожалению.

3 голосов
/ 11 марта 2011

Да, он называется UIActionSheet. Вот пример:

        UIActionSheet *takeAction = [[UIActionSheet alloc] initWithTitle:@"" 
                                                                delegate:self 
                                                       cancelButtonTitle:@"Cancel" 
                                                  destructiveButtonTitle:@"Delete"
                                                       otherButtonTitles:@"New...", @"Open...", @"Save As...", nil];        
        [takeAction setActionSheetStyle:UIActionSheetStyleDefault];
// use this to implement it with a tabBarController; similar ways to work with navBars
        [takeAction showFromTabBar:(UITabBar *)[[self tabBarController] view]];
        [takeAction release];

Как и в случае alertView, вы отвечаете на кнопки

- (void)actionSheet:(UIActionSheet *)actionSheet 

    clickedButtonAtIndex:(NSInteger)buttonIndex
    {
        if (buttonIndex == [actionSheet destructiveButtonIndex]) {
            [self deleteIt];
        } else if (buttonIndex == [actionSheet cancelButtonIndex]) {
        } else if (buttonIndex == 1) {
            [self createNew];
        } else if (buttonIndex == 2) {
            [self openSaved];
        } else if (buttonIndex == 3) {
            [self saveAs];
        } else {
        }
    }

Кроме того, не забудьте объявить viewController делегатом:

<UIActionSheetDelegate>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...