创建操作表(UIActionSheet)
UIActionSheet用来创建一个操作表,它的初始化代码如下:
- (IBAction)testActionSheet:(id)sender
{
UIActionSheet *actionSheet = [[UIActionSheet alloc]
initWithTitle:@"选择操作"
delegate:self
cancelButtonTitle:@"取消操作"
destructiveButtonTitle:@"清空数据(无法恢复)"
otherButtonTitles:@"保存数据", nil];
actionSheet.actionSheetStyle = UIActionSheetStyleDefault;
//[actionSheet showInView:self.view];
[actionSheet showFromRect:[(UIButton *)sender frame] inView:self.view animated:YES];
}
调用该方法后,会产生如下界面:
参数说明:
initWithTitle --- 初始化操作表并设置出现在操作表顶端的标题
delegate --- 指定将作为操作表委托的对象。如果不需要响应任何操作,可设置为nil
cancelButtonTitle --- 操作表中默认按钮的标题
destructiveButtonTitle --- 显示一个破坏性按钮,该按钮呈亮红色显示,一般用来提示将导致信息丢失的操作。如果设置为nil,将不会显示
otherButtonTitles --- 操作表中额外按钮的标题,是一个数组,以nil结尾
actionSheet.actionSheetStyle用来定义操作表的外观,有4种样式可供选择:
UIActionSheetStyleDefault --- 由iOS决定的操作表默认外观
UIActionSheetStyleAutomatic --- 如果屏幕底部有按钮栏,则采用与按钮栏匹配的样式
UIActionSheetStyleBlackOpaque --- 不透明的深色样式
UIActionSheetStyleBlackTranslucent --- 半透明的深色样式
显示操作表与显示提醒视图不同,操作表可与给定的视图、选项卡栏或工具栏相关联。操作表出现在屏幕上时,将以动画方式展示它与这些元素的关系。
[actionSheet showInView:self.view]是在当前控制器的视图打开操作表。如果有工具栏或选项卡栏,可使用方法showFromToolbar或showFromTabBar让操作表看起来是从这些用户界面元素中打开的。
响应操作类必须遵守协议UIActionSheetDelegate并实现方法actionSheet:clickedButtonAtIndex。
首先在类的头文件(.h)里声明为遵守UIAlertViewDelegate协议:
@interface ViewController : UIViewController <UIAlertViewDelegate>
然后实现方法actionSheet:clickedButtonAtIndex:
- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex
{
NSString *strTitle = [actionSheet buttonTitleAtIndex:buttonIndex];
NSLog(@"button title is %@",strTitle);
NSLog(@"cancel button's index is %d",[actionSheet cancelButtonIndex]);
NSLog(@"destructive button's index is %d",[actionSheet destructiveButtonIndex]);
}
在iPad中,不应在视图上显示操作表。Apple用户界面指南指出,必须在弹出框中显示操作表。弹出框(popover)是一种独特的用户界面元素,在用户触摸某个屏幕元素时出现,并通常在用户触摸背景时候消失。弹出框还包含一个小箭头,指向触发它的UI元素。为符合Apple的要求,即操作表必须显示在弹出框中,可使用方法showFromRect:inView:animated来显示一个包含操作表的弹出框。其中第一个参数(showFromRect)指定了屏幕上的一个矩形区域,弹出框的箭头将指向它。为正确设置该参数,可使用sender变量(这里是一个UIButton对象)的frame属性。参数inView指定了操作表/弹出框将显示在其中的视图(这里设置为self.view)。而参数animated是一个布尔值,指定是否以动画方式显示。
当您在iPad上运行该应用程序时,操作表将包含在一个弹出框中;而在iPhone上运行时,将忽略额外的参数,就像使用方法showInView那样显示操作表。
对于操作表,需要指出的最后一点是,当您在iPad上弹出框中显示操作表时,将自动忽略取消按钮。这是因为触摸弹出框的外面与单击取消按钮的效果相同,因此这个按钮是多余的。
创建操作表(UIActionSheet)的更多相关文章
- 操作表查询&操作表创建&操作表删除&操作表修改
2.操作表 C(create):创建 语法: create table 表明( 列名1 数据类型1, 列名2 数据烈性2, .... 列名n 数据类型n ); create table Student ...
- UIAlertView与UIActionSheet
1.UIAlertView(警告框) 1.1 创建警告框,设置样式 - (IBAction)alertView:(UIButton *)sender {//创建button按钮 //创建警告框的实例 ...
- ios9基础知识(UI)总结
UIWindow.UILabel.UIColor.UIScreen.UIViewController.UIView.UIControl.UIButton.IBOutlet.IBAction.UISte ...
- 《iOS 7 应用开发实战详解》
<iOS 7 应用开发实战详解> 基本信息 作者: 朱元波 管蕾 出版社:人民邮电出版社 ISBN:9787115343697 上架时间:2014-4-25 出版日期:2014 年5 ...
- MyBatis知多少(20)MyBatis读取操作
上篇展示了如何使用MyBatis执行创建操作表.本章将告诉你如何使用MyBatis来读取表. 我们已经在MySQL下有EMPLOYEE表: CREATE TABLE EMPLOYEE ( id INT ...
- 设计师眼中功能强大的Xcode
作为设计师,不仅要能创造出移动为先的新产品,更要了解能创造出优秀移动作品的工具.这个实现过程可以让我们的设计更加优秀. 过去两个月,我每天在 Xcode 上花费的时间大约有 10 个小时,我学到了很多 ...
- UIView用户事件响应
UIView除了负责展示内容给用户外还负责响应用户事件.本章主要介绍UIView用户交互相关的属性和方法. 1.交互相关的属性 userInteractionEnabled 默认是YES ,如果设置为 ...
- eclipse中myBatis引入
1.添加config.xml配置文件 2.定义与数据库的数据实体映射类 3.创建操作表的是sql映射文件 即:mapper.xml 4.在配置文件config.xml中注册sql映射文件(步骤三创建的 ...
- 1006-HBase操作实战(JAVA API状态)
一.准备阶段 开发环境: hadoop: hadoop -2.4.0 hbase: hbase -0.94.11-security eclipse:Juno Service Release 2 二.创 ...
随机推荐
- gym100712 ACM Amman Collegiate Programming Contest
非常水的手速赛,大部分题都是没有算法的.巨慢手速,老年思维.2个小时的时候看了下榜,和正常人差了3题(,最后还没写完跑去吃饭了.. A 水 Sort 比大小 /** @Date : 2017-09-0 ...
- CF745 C 并查集
并查集由于政府不能连通我们可以先按给出的边建立连通块,再将不含有政府的点全部作为一个连通块,边数为(n-1)*n/2然后 贪心地将该连通块与[含政府的.且包含点数最多的]连通块相连,然后由于新增了一些 ...
- AlloyTouch 简介
AlloyTouch 是来自于腾讯AlloyTeam团队开发的一个适用用移动端的js组件库. 特性: 1.丰富的组件 选择组件.级联选择组件.轮播组件.全屏滚动组件.下拉刷新组件.上拉刷新任君选择 2 ...
- [php]http响应头解析
(Status-Line) HTTP/ OK Cache-Control no-cache Content-Length Content-Type image/gif Date Sat, Dec :: ...
- TreeSet的特性
TreeSet在Set的元素不重复的基础之上引入排序的概念,其中对自身拥有Comparable的元素,可以直接进行排序,比如字符串,按照字母的自然顺序排序,此处说下对于自定义对象排序的方式. 1.存储 ...
- 谨慎重载clone方法
本文涉及到的概念 1.浅拷贝和深拷贝 2..clone方法的作用和使用方式 3.拷贝构造器和拷贝工厂 1.浅拷贝和深拷贝 浅拷贝 一个类实现Cloneable接口,然后,该类的实例调用clone方 ...
- HTML5实现仪表盘、温度计等插件实用源码
- PHP动态修改配置文件——php经典实例
文件结构: index.php 主页 config 配置文件 doUpdate.php 修改功能页 index.php <html> <head> <title>修 ...
- javaScript-继承2种方式
1.组合继承 组合继承带来的问题很明细就是父类的构造函数会调用两次,如: function Person(name, age, sex) { this.name = name; this.age = ...
- spring(四)之基于注解(Annotation-based)的配置.md
注解 这里讲的注解有下面几个 @Autowired @Qualifier(" ") @Genre(" ") @Offline @Resource(name=&q ...