2.UIActionSheet类(在iOS弹出的选择按钮项)
1)新建对象
UIActionSheet*actionSheet = [[UIActionSheet alloc]
initWithTitle:@"title,nil时不显示"
delegate:self
cancelButtonTitle:@"取消"
destructiveButtonTitle:@"确定"
otherButtonTitles:@"第一项", @"第二项",@"第三项",nil];//新建UIActionSheet对象
/**动态添加按钮
如果我要在运行时改变应该怎么办呢?动态添加按钮看起来应该也很简单,不要init函数中指定而在之后添加可以了,如下代码就展示了这点。
- (void)testActionSheetDynamic { // 创建时仅指定取消按钮 UIActionSheet *sheet = [[UIActionSheet alloc]initWithTitle:@"Dynamic UIActionSheet" delegate:self cancelButtonTitle:@"Cancel" destructiveButtonTitle:nil otherButtonTitles:nil];
// 逐个添加按钮(比如可以是数组循环) [sheetaddButtonWithTitle:@"Item A"]; [sheet addButtonWithTitle:@"ItemB"]; [sheet addButtonWithTitle:@"Item C"]; [sheetshowFromRect:view.bounds inView:view animated:YES]; [sheetrelease]; }
**/
2)设置其属性
actionSheet.actionSheetStyle= UIActionSheetStyleBlackOpaque;//设置其风格
操作表单也支持三种风格 :
UIActionSheetStyleDefault //默认风格:灰色背景上显示白色文字
UIActionSheetStyleBlackTranslucent //透明黑色背景,白色文字
UIActionSheetStyleBlackOpaque //纯黑背景,白色文字
actionSheet.destructiveButtonIndex=1//指定了一个销毁按钮他就会以红色高亮显示
3)将其添加到视图当中。
[actionSheet showInView:self.view];//在当前view显示Actionsheet
4)实现各按钮对应的方法
-(void)actionSheet:(UIActionSheet*)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex{
if(buttonIndex == 0) {//确定按钮
// [self showAlert:@"确定"];
}else if (buttonIndex == 1){
// [selfshowAlert:@"第一项"];
}else if(buttonIndex == 2){
// [selfshowAlert:@"第二项"];
}else if(buttonIndex == 3){//取消按钮
// [selfshowAlert:@"取消"];
}
}
- (void)actionSheetCancel:(UIActionSheet*)actionSheet{
}
-(void)actionSheet:(UIActionSheet*)actionSheet didDismissWithButtonIndex:(NSInteger)buttonIndex{
}
-(void)actionSheet:(UIActionSheet*)actionSheet willDismissWithButtonIndex:(NSInteger)buttonIndex{
}
注意事项
在开发过程中,发现有时候UIActionSheet的最后一项点击失效,点最后一项的上半区域时有效,这是在特定情况下才会发生,这个场景就是试用了UITabBar的时候才有。解决办法:
在showView时这样使用,[actionSheetshowInView:[UIApplication sharedApplication].keyWindow];或者[sheetshowInView:[AppDelegate sharedDelegate].tabBarController.view];这样就不会发生遮挡现象了。