iOS:提示框(警告框)控件UIActionSheet的详解
提示框(警告框)控件2:UIActionSheet
typedef NS_ENUM(NSInteger, UIActionSheetStyle) {
UIActionSheetStyleAutomatic = -1, //iOS系统自动默认的风格
UIActionSheetStyleDefault = UIBarStyleDefault,// 默认风格,灰色背景上显示白色文字
UIActionSheetStyleBlackTranslucent = UIBarStyleBlackTranslucent //透明黑色背景,白色文字
UIActionSheetStyleBlackOpaque = UIBarStyleBlackOpaque, //纯黑背景,白色文字
};
属性:
@property(nonatomic,assign) id<UIActionSheetDelegate> delegate; // 代理
@property(nonatomic,copy) NSString *title; //标题
@property(nonatomic) UIActionSheetStyle actionSheetStyle; //风格类型
@property(nonatomic,readonly) NSInteger numberOfButtons; //按钮数量
@property(nonatomic) NSInteger cancelButtonIndex; //取消按钮的索引
@property(nonatomic) NSInteger destructiveButtonIndex; //红色按钮索引
@property(nonatomic,readonly) NSInteger firstOtherButtonIndex; //其他第一个按钮索引
@property(nonatomic,readonly,getter=isVisible) BOOL visible; //是否可见
方法:
※创建实例的初始化方法
- (instancetype)initWithTitle:(NSString *)title delegate:(id<UIActionSheetDelegate>)delegate cancelButtonTitle:(NSString *)cancelButtonTitle destructiveButtonTitle:(NSString *)destructiveButtonTitle otherButtonTitles:(NSString *)otherButtonTitles, ...("Use UIAlertController instead.”);
※添加按钮,返回它的索引
- (NSInteger)addButtonWithTitle:(NSString *)title;
※返回指定索引的按钮文字
- (NSString *)buttonTitleAtIndex:(NSInteger)buttonIndex;
※显示在工具栏
- (void)showFromToolbar:(UIToolbar *)view;
※显示在导航栏
- (void)showFromTabBar:(UITabBar *)view;
※显示在工具栏按钮上
- (void)showFromBarButtonItem:(UIBarButtonItem *)item animated:(BOOL)animated ;
※在指定区域和视图上显示
- (void)showFromRect:(CGRect)rect inView:(UIView *)view animated:(BOOL)animated;
※在视图上显示
- (void)showInView:(UIView *)view;
※按钮消失
- (void)dismissWithClickedButtonIndex:(NSInteger)buttonIndex animated:(BOOL)animated;
代理方法:
@protocol UIActionSheetDelegate <NSObject>
@optional
//点击一个按钮时触发的方法
- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex;
// 如果没有定义的委托,我们模拟一个点击取消按钮
- (void)actionSheetCancel:(UIActionSheet *)actionSheet;
//将要显示警告框时触发的方
- (void)willPresentActionSheet:(UIActionSheet *)actionSheet;
//已经显示提示框时触发的方法
- (void)didPresentActionSheet:(UIActionSheet *)actionSheet;
//提示框将要消失时触发的方法
- (void)actionSheet:(UIActionSheet *)actionSheet willDismissWithButtonIndex:(NSInteger)buttonIndex;
//提示框已经消失时触发的方法
- (void)actionSheet:(UIActionSheet *)actionSheet didDismissWithButtonIndex:(NSInteger)buttonIndex;
@end
举例如下:类实现协议
@interface ViewController ()<UIActionSheetDelegate>
1. //实例化
//创建提示框实例
UIActionSheet *actionSheet = [[UIActionSheet alloc]initWithTitle:@"title" delegate:self cancelButtonTitle:@"cance" destructiveButtonTitle:@"destructive" otherButtonTitles:@"button1", @"button2",nil];
2. //设置风格
//设置风格
actionSheet.actionSheetStyle = UIActionSheetStyleBlackTranslucent;
3. //设置代理
//设置代理
actionSheet.delegate = self;
4. //在视图上显示
//在视图上显示
[actionSheet showInView:self.view];
实现代理方法:
#pragma mark-<UIActionSheetDelegate>
1.点击按钮时触发事件
//点击一个按钮时触发的方法
- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex
{
NSLog(@"actionSheet: clickedButtonAtIndex:");
}
2.取消提示框时触发的事件
// 如果没有定义的委托,我们模拟一个点击取消按钮
- (void)actionSheetCancel:(UIActionSheet *)actionSheet
{
NSLog(@"actionSheetCancel:");
}
3.提示框将要显示时触发的事件
//将要显示警告框时触发的方
- (void)willPresentActionSheet:(UIActionSheet *)actionSheet
{
NSLog(@"willPresentActionSheet:");
}
4.显示提示框时触发的方法
//已经显示提示框时触发的方法
- (void)didPresentActionSheet:(UIActionSheet *)actionSheet
{
NSLog(@"didPresentActionSheet:");
}
5.提示框将要消失时触发的方法
//提示框将要消失时触发的方法
- (void)actionSheet:(UIActionSheet *)actionSheet willDismissWithButtonIndex:(NSInteger)buttonIndex
{
NSLog(@"actionSheet: willDismissWithButtonIndex:");
}
6.提示框消失时触发的方法
//提示框已经消失时触发的方法
- (void)actionSheet:(UIActionSheet *)actionSheet didDismissWithButtonIndex:(NSInteger)buttonIndex
{
NSLog(@"actionSheet: didDismissWithButtonIndex:");
}
演示结果如下:
代理方法调用情况如下:
程序运行起来, 没有点击按钮时:
-- ::29.647 提示框UIActionSheet[:] willPresentActionSheet:
点击任意按钮时:
-- ::18.882 提示框UIActionSheet[:] actionSheet: clickedButtonAtIndex:
-- ::18.883 提示框UIActionSheet[:] actionSheet: willDismissWithButtonIndex:
-- ::19.297 提示框UIActionSheet[:] actionSheet: didDismissWithButtonIndex:
iOS:提示框(警告框)控件UIActionSheet的详解的更多相关文章
- 《手把手教你》系列技巧篇(三十八)-java+ selenium自动化测试-日历时间控件-下篇(详解教程)
1.简介 理想很丰满现实很骨感,在应用selenium实现web自动化时,经常会遇到处理日期控件点击问题,手工很简单,可以一个个点击日期控件选择需要的日期,但自动化执行过程中,完全复制手工这样的操作就 ...
- iOS:提示框(警告框)控件UIAlertView的详解
提示框(警告框)控件:UIAlertView 功能:当点击按钮或标签等时,弹出一个提示框,显示必要的提示,然后通过添加的按钮完成需要的功能. 类型:typedef NS_ENUM(NSInte ...
- iOS:网页视图控件UIWebView的详解
网页视图控件:UIWebView 功能:它是继承于UIView的,是一个内置的浏览器控件,以用来浏览从网络下载下来的网页或者本地上加载下来的文档. 枚举: //网页视图导航类型 typedef NS_ ...
- iOS:选择器控件UIPickerView的详解和演示
选择器控件UIPickerView: 功能:它能够创建一个类似于密码锁式的单列或多列的选择菜单,用户可以通过它设置的代理来选择需要菜单中的任意的数据.例如创建日历.字体表(类型.大小.颜色).图库等. ...
- iOS:下拉刷新控件UIRefreshControl的详解
下拉刷新控件:UIRefreshControl 1.具体类信息: @interface UIRefreshControl : UIControl //继承控制类 - (instancetype)ini ...
- iOS:图像选取器控制器控件UIImagePickerController的详解
图像选择控制器:UIImagePickerController 功能:用于选取相册或相机等里面的照片. @interface UIImagePickerController : UINavigatio ...
- delphi控件属性大全-详解-简介
http://blog.csdn.net/u011096030/article/details/18716713 button 组件: CAPTION 属性 :用于在按钮上显示文本内容 Cancel ...
- 【VB技巧】VB ListView 控件功能使用详解
来源:http://lcx.cc/?i=494 ListView控件 在工具箱上击鼠标右键,选择快捷菜单的Components(部件)项,在控件列表中选择Microsoft Windows Commo ...
- 转 VB ListView控件各种操作详解
Private Sub Form_Load() ListView1.ListItems.Clear '清空列表 ListView1.ColumnHeaders.Clear '清空列表头 ListVie ...
随机推荐
- 诺基亚9 PureView正式发布
[手机中国新闻]当地时间2月24日下午16点,HMD在西班牙巴塞罗那正式发布了诸多新品,其中最吸睛的莫过于Nokia 9 PureView.作为全球首款五摄新机,Nokia 9 PureView后置五 ...
- 回文词(UVa401)
详细题目描述见:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_prob ...
- C# 使用UDP组播实现局域网桌面共享
最近需要在产品中加入桌面共享的功能,暂时不用实现远程控制:参考了园子里的一些文章,加入了一些自己的修改. 需求:将一台机器的桌面通过网络显示到多个客户端的屏幕上,显示内容可能为PPT,Word文档之类 ...
- spring_150906_sqlmapclientdaosupport_getSqlMapClientTemplate
添加到ibatis相关jar包! 实体类: package com.spring.model; public class DogPet { private int id; private String ...
- 后台开发常用mysql语句_v1.0
目录 一.基本信息查看 1. 表描述 二.表操作 1. 查看建表语句 2.查看表 3. 创建表 4. 更新表 5. 删除表 6. 重命名表 三.索引操作 1. 查看索引 2. 创建索引 3. 修改索引 ...
- dp 加搜索 百练1088 滑雪
描述 Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激.可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你.Michael想知道载一个区域中最长的 ...
- java8新特性——时间日期API
传统的时间 API 存在线程安全的问题,在多线程开发中必须要上锁,所以 java8 现在为我们提供了一套全新的时间日期 API ,今天进来学习一下java8 的时间日期 API. 一.使用 Local ...
- 【BZOJ 2119】 2119: 股市的预测 (后缀数组+分块+RMQ)
2119: 股市的预测 Time Limit: 10 Sec Memory Limit: 259 MBSubmit: 404 Solved: 188 Description 墨墨的妈妈热爱炒股,她 ...
- 【BZOJ 1062】 1062: [NOI2008]糖果雨 (二维树状数组)**
1062: [NOI2008]糖果雨 Description 有一个美丽的童话:在天空的尽头有一个" 糖果国" ,这里大到摩天大厦,小到小花小草都是用糖果建造而成的.更加神奇的是, ...
- BZOJ 1497 JZYZOJ 1344 [NOI2006]最大获利 网络流 最大权闭合图
http://www.lydsy.com/JudgeOnline/problem.php?id=1497 http://172.20.6.3/Problem_Show.asp?id=1344 思路 ...