创建:
UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:@"Hello" delegate:self cancelButtonTitle:@"Cancel" destructiveButtonTitle:@"OK" otherButtonTitles:nil]; actionSheet.tag = TAG_ACTIONSHEET; actionSheet.actionSheetStyle = UIActionSheetStyleBlackOpaque;
actionSheetStyle:actionSheet的外观样式。有三种:
1.UIBarStyleDefault(默认,黑色);
2.UIBarStyleBlackTranslucent(黑色半透明);
3.UIBarStyleBlackOpaque(黑色不透明)。
delegate:代理。最常用的是实现下面这个代理方法(注释如下):
// Called when a button is clicked. The view will be automatically dismissed after this call returns - (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex;显示
[actionSheet showInView:self.view];
1.- (void)showFromTabBar:(UITabBar *)view1
从指定的tabbar来呈现actionSheet。
在ipad上,这个方法把actionSheet居中在屏幕的正中心。如果你想在ipad上呈现这个actionSheet相对于tabbar的位置,你可以使用 showFromRect:inView:animated:
这个方法。
2.- (void)showFromToolbar:(UIToolbar *)view
类似于第一个方法,就不多说了。
3.- (void)showInView:(UIView *)view
从指定的视图来呈现actionSheet。
在ipad上,这个方法把actionSheet居中在屏幕的正中心。如果你想在ipad上呈现这个actionSheet,你可以使用 showFromRect:inView:animated:
这个方法。
4.- (void)showFromRect:(CGRect)rect inView:(UIView *)view animated:(BOOL)animated
一般在ipad上用这个方法.
在iPad中,不应在视图上显示操作表。Apple用户界面指南指出,必须在弹出框中显示操作表。弹出框(popover)是一种独特的用户界面元素,在用户触摸某个屏幕元素时出现,并通常在用户触摸背景时候消失。弹出框还包含一个小箭头,指向触发它的UI元素。为符合Apple的要求,即操作表必须显示在弹出框中,可使用方法showFromRect:inView:animated来显示一个包含操作表的弹出框。其中第一个参数(showFromRect)指定了屏幕上的一个矩形区域,弹出框的箭头将指向它。为正确设置该参数,可使用sender变量(这里是一个UIButton对象)的frame属性。参数inView指定了操作表/弹出框将显示在其中的视图(这里设置为self.view)。而参数animated是一个布尔值,指定是否以动画方式显示。
当您在iPad上运行该应用程序时,操作表将包含在一个弹出框中;而在iPhone上运行时,将忽略额外的参数,就像使用方法showInView那样显示操作表。
对于操作表,需要指出的最后一点是,当您在iPad上弹出框中显示操作表时,将自动忽略取消按钮。这是因为触摸弹出框的外面与单击取消按钮的效果相同,因此这个按钮是多余的。
5.- (void)showFromBarButtonItem:(UIBarButtonItem *)item animated:(BOOL)animated
点击item,弹出actionSheet,箭头指向item,与方法4类似。效果如下图: