系统 UIActionSheet 和 IBActionSheet

今天详细看了一下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中的后两个按钮中间没有分割线。

系统 UIActionSheet 和 IBActionSheet_第1张图片

1


IBActionSheet(一个第三方的仿照ios7风格的actionSheet)

点击打开链接

1

1

1

1

1

1

1

1

你可能感兴趣的:(系统 UIActionSheet 和 IBActionSheet)