如何在iPhone UI中显示备用选项?

时间:2011-03-11 04:46:59

标签: iphone uiview

我经常看到类似iphone应用程序底部图片的内容,并想知道是否有一种标准的方法来实现这一点。

要清楚,它是一个覆盖屏幕一半的视图,通常带有按钮来选择不同的选项。当我要求标准方式时,我的意思是UITableView,UIAlertView,UIScrollView等......

iphone screenshot

2 个答案:

答案 0 :(得分:8)

您正在寻找UIActionSheet:http://developer.apple.com/library/ios/documentation/uikit/reference/UIActionSheet_Class/Reference/Reference.html


在使用这些(或任何其他UI元素)之前,还要检查iOS人机界面指南中有关如何使用它们的内容。我经常看到行动表被滥用,令人遗憾。

答案 1 :(得分:3)

是的,它被称为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>