今天详细看了一下UIActionSheet
demo地址
点击打开链接
- (IBAction)showSheet:(id)sender { UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:@"title,nil时不显示" delegate:self cancelButtonTitle:@"取消" destructiveButtonTitle:@"确定" otherButtonTitles:@"第一项", @"第二项",nil]; actionSheet.actionSheetStyle = UIActionSheetStyleAutomatic; [actionSheet showInView:self.view]; // UIActionSheetStyle有如下枚举 (其中在:ios7以下有效果,ios7及以上没效果) // typedef NS_ENUM(NSInteger, UIActionSheetStyle) { // UIActionSheetStyleAutomatic = -1, // take appearance from toolbar style otherwise uses 'default' //自动 // UIActionSheetStyleDefault = UIBarStyleDefault, //默认 // UIActionSheetStyleBlackTranslucent = UIBarStyleBlackTranslucent,//黑色透明 // UIActionSheetStyleBlackOpaque = UIBarStyleBlackOpaque,//黑色不透明 // }; }
title为nil时,标题不显示
cancelButtonTitle:取消按钮标题,可为nil,当设为nil时取消没有取消按钮。这里有一个区别,
ios7以前,
不论cancelButtonTitle是否为空,点击actionSheet上方的灰色区域actionSheet都不会消失,
ios7及以后
当设置cancelButtonTitle不为nil时,点击点击actionSheet上方的灰色区域actionSheet会消失,
当设置为nil时,没有取消按钮且点击点击actionSheet上方的灰色区域actionSheet都不会消失,
delegate: 代理
destructiveButtonTitle:消极按钮,可为空,设置后会以红色显示
otherButtonTitles:其他按钮标题
actionSheet.actionSheetStyle = UIActionSheetStyleAutomatic;//ios7没效果
1
这里有一个现象,不知道是不是bug,在ios7时当设置cancelButtonTitle为nil时,otherButtonTitles中的后两个按钮中间没有分割线。
1
IBActionSheet(一个第三方的仿照ios7风格的actionSheet)
点击打开链接
1
1
1
1
1
1
1
1