版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第4章
界面控件与内置视图第4章
界面控件与内置视图本章内容概要了解控件的作用以及它与视图的关系。了解控件具有哪些基本的属性。理解控件事件与触屏事件的关系。理解控件的目标-行为机制,掌握如何通过代码注册和取消注册目标-行为项。掌握常用控件的使用方法,如按钮、文本框、分页控件等。掌握重要视图的使用方法,如进度条、警告视图、滚轮选取视图等。理解并运用委托模式。iOS应用程序开发方法与实践2本章内容概要了解控件的作用以及它与视图的关系。iOS应用程序4.1界面控件基础构建程序界面的两种主要方式:继承现有的视图,并添加自定义行为(第3章,创建UIView的子类,并重写触屏事件回调方法)。直接使用UIKit提供的界面控件与视图(本章)。大多数界面控件都继承自控件类UIControl,该类定义了所有控件的公共行为。UIControl是UIView的子类,因此界面控件就是视图,所有适用于视图的功能都适用于界面控件。iOS应用程序开发方法与实践34.1界面控件基础构建程序界面的两种主要方式:iOS应用4.1.1控件基本属性UIControl类定义了所有控件的公共属性:是否启用:enabled属性。是否被选中:selected属性。否高亮显示:highlighted属性。控件内部的布局方式:contentVerticalAlignment、contentHorizontalAlignment属性。具体请参见UIControl类的定义。iOS应用程序开发方法与实践44.1.1控件基本属性UIControl类定义了所有控件的4.1.2目标-行为机制UIKit内部使用目标-行为机制来响应控件事件。应用程序中的某些对象O1、O2、O3...会对某一控件C的某种事件E感兴趣,当在控件C上发生事件E后,这些对象上的某些事件处理方法M1、M2、M3...会被调用。对象O1、O2、O3...就称作控件C对于事件E的目标集合。事件处理方法M1、M2、M3...称作控件C对于事件E的行为集合。控件会有很多种事件,例如按下、抬起、值修改等。控件的同一个事件的目标与行为可以有多个。iOS应用程序开发方法与实践54.1.2目标-行为机制UIKit内部使用目标-行为机制来4.1.2目标-行为机制三个必要信息:目标:哪些对象关心控件。事件:每个对象关心控件上的哪种事件。行为:事件发生后执行目标对象上的哪个事件处理方法。每个控件通过维护自己的目标-行为表来记录所有目标-行为项。在控件响应某种事件前,目标对象需要首先告诉控件以上三个信息,这个过程称作目标-行为的注册。反之,如果不再需要响应控件的某种事件,应该解除目标-行为的注册。iOS应用程序开发方法与实践64.1.2目标-行为机制三个必要信息:iOS应用程序开发方4.1.2目标-行为机制UIControl类定义了用于维护目标-行为表的方法://向控件注册新的目标-行为项,传入3个必要信息-(void)addTarget:(id)targetaction:(SEL)actionforControlEvents:(UIControlEvents)controlEvents;//撤销已注册的目标-行为项,传入3个必要信息-(void)removeTarget:(id)targetaction:(SEL)actionforControlEvents:(UIControlEvents)controlEvents;//获取指定目标对象上指定事件的行为方法名称数组-(NSArray*)actionsForTarget:(id)targetforControlEvent:(UIControlEvents)controlEvent;iOS应用程序开发方法与实践74.1.2目标-行为机制UIControl类定义了用于维护4.1.2目标-行为机制当发生控件事件后:遍历控件的目标-行为表,找到该事件对应的所有目标-行为项。针对每一个目标-行为项,通知应用程序对象调用目标对象上的行为方法,并传入事件对象。//通知应用程序对象,让其调用目标的指定行为方法-(void)sendAction:(SEL)actionto:(id)targetforEvent:(UIEvent*)event;//执行与指定事件相关的所有行为方法-(void)sendActionsForControlEvents:(UIControlEvents)controlEvents;iOS应用程序开发方法与实践84.1.2目标-行为机制当发生控件事件后:iOS应用程序开4.1.2目标-行为机制控件是响应对象,控件类重写了4个触屏回调方法,会根据触屏对象所处的阶段,将它们转换为对应的控件事件。控件的使用者只需关注各种控件事件,而无需再关注于低级的触屏事件。控件事件是对触屏事件的封装。iOS应用程序开发方法与实践94.1.2目标-行为机制控件是响应对象,控件类重写了4个触4.2常用界面控件的使用常用界面控件包括:按钮。文本框。开关。滑动调节器。分页控件。分段控件。iOS应用程序开发方法与实践104.2常用界面控件的使用常用界面控件包括:iOS应用程序4.2.1按钮按钮是UIButton对象。传入按钮的类型参数来创建按钮。+(id)buttonWithType:(UIButtonType)buttonType;设置按钮在某一状态时的标题。-(void)setTitle:(NSString*)titleforState:(UIControlState)state;iOS应用程序开发方法与实践114.2.1按钮按钮是UIButton对象。iOS应用程序开4.2.1按钮按钮最常用的事件就是内部抬起事件UIControlEventTouchUpInside。参见教材“案例:按钮的使用方法”。iOS应用程序开发方法与实践124.2.1按钮按钮最常用的事件就是内部抬起事件UICont4.2.3文本框与键盘交互文本框是UITextField对象,用于接收用户输入的文本信息。iOS应用程序开发方法与实践134.2.3文本框与键盘交互文本框是UITextField对4.2.3文本框与键盘交互-设置样式使用initWithFrame:方法,传入定位置尺寸进行初始化。文本框允许设置外观,例如:设置字体:font属性。设置默认提示信息:placeholder属性。设置边框样式:borderStyle属性。设置清除按钮的模式:clearButtonMode属性。iOS应用程序开发方法与实践144.2.3文本框与键盘交互-设置样式使用initWithF4.2.3文本框与键盘交互-设置软键盘文本框在处于编辑状态时会自动弹出软键盘。所有实现文本输入的控件都需要实现UITextInput协议,其中被继承的UITextInputTraits协议又定义了键盘输入的相关特性。定义软键盘的类型:keyboardType属性。设置键盘的返回键类型:returnKeyType属性。自动转换为大写(仅限英文):autocapitalizationType属性。iOS应用程序开发方法与实践154.2.3文本框与键盘交互-设置软键盘文本框在处于编辑状态4.2.3文本框与键盘交互-文本框委托文本框使用了委托模式,委托协议为UITextFieldDelegate。@property(nonatomic,assign)id<UITextFieldDelegate>delegate;文本框会在特定的时间点调用委托方法:在文本框内容开始/结束编辑之前/之后。在替换指定的内容前。点击清空按钮后。点击返回键后等。参见教材“案例:文本框的使用方法”。取消文本框的第一响应状态,即可令键盘消失。iOS应用程序开发方法与实践164.2.3文本框与键盘交互-文本框委托文本框使用了委托模式4.2.5开关开关控件是UISwitch对象。使用UISwitch的initWithFrame:方法进行初始化。要么开启要么关闭,只能二选一。获取开关状态:on属性。设置开关状态:setOn:animated:方法。开关控件的尺寸不可调整。iOS应用程序开发方法与实践174.2.5开关开关控件是UISwitch对象。iOS应用程4.2.5开关开关控件允许获取开关状态,以动画方式设置开关状态,以及设置开关开启时的渲染颜色。手动修改开关状态时会引发UIControlEventValueChanged事件,而通过代码修改则不会引发。参见教材“案例:开关的使用方法”。iOS应用程序开发方法与实践184.2.5开关开关控件允许获取开关状态,以动画方式设置开关4.2.7滑动调节器滑动调节器是UISlider对象,用于在一个连续的范围内选取其中的一个值。使用UISlider的initWithFrame:方法进行初始化。iOS应用程序开发方法与实践194.2.7滑动调节器滑动调节器是UISlider对象,用于4.2.7滑动调节器滑动调节器允许:设置滑动调节器的最小值与最大值:minimumValue属性与maximumValue属性。设置或获取滑动调节器当前值:value属性。设置滑动调节器的最小值图片与最大值图片:minimumValueImage属性与maximumValueImage属性。指定是否连续发送事件消息:continuous属性。以动画方式修改滑动调节器的当前值:setValue:animated:方法。手动调整滑动调节器会引发UIControlEventValueChanged事件。参见教材“案例:滑动调节器的使用方法”。iOS应用程序开发方法与实践204.2.7滑动调节器滑动调节器允许:iOS应用程序开发方法4.2.9分页控件分页控件是UIPageControl对象,用于在多个页面中显示信息。它显示若干个小圆点,每个圆点代表一页。使用UIPageControl的initWithFrame:方法进行初始化。iOS应用程序开发方法与实践214.2.9分页控件分页控件是UIPageControl对象4.2.9分页控件分页控件允许:设置或获取分页控件的总共页数:numberOfPages属性。设置或获取当前显示页的下标:currentPage属性。当翻页时是否延迟显示当前页:defersCurrentPageDisplay属性。切换分页控件页面时会引发UIControlEventValueChanged事件。参见教材“案例:分页控件的使用方法”。iOS应用程序开发方法与实践224.2.9分页控件分页控件允许:iOS应用程序开发方法与实4.2.11分段控件分段控件是UISegmentedControl对象。水平方向上分成若干分段的按钮,可以显示文字或图片。当用户点击了某个分段,则该分段高亮显示。使用UISegmentedControl的initWithItems:方法进行初始化。-(id)initWithItems:(NSArray*)items;数组成员可以是字符串对象或者图片对象。iOS应用程序开发方法与实践234.2.11分段控件分段控件是UISegmentedCon4.2.11分段控件分段控件允许:设置或获取分段控件的样式:segmentedControlStyle属性。获取分段的数量:numberOfSegments属性。设置或获取当前选中的分段下标:selectedSegmentIndex属性。设置分段控件的渲染颜色:tintColor属性。手动切换分段控件的所选分段时会引发UIControlEventValueChanged事件。iOS应用程序开发方法与实践244.2.11分段控件分段控件允许:iOS应用程序开发方法与4.3常用内置视图的使用常用内置视图包括:滚动视图。进度条。任务指示视图。警告视图。行为列表。滚轮选取视图。iOS应用程序开发方法与实践254.3常用内置视图的使用常用内置视图包括:iOS应用程序4.3.1滚动视图滚动视图对应的类是UIScrollView,用于显示尺寸较大的内容(例如大尺寸图片)。使用UIScrollView的initWithFrame:方法进行初始化。iOS应用程序开发方法与实践264.3.1滚动视图滚动视图对应的类是UIScrollVie4.3.1滚动视图滚动视图可以:设置要显示的内容尺寸:contentSize属性。移动滚动视图显示的内容:contentOffset属性。指定滚动视图内容的最小和最大缩放比例:minimumZoomScale属性与maximumZoomScale属性。滚动视图使用委托模式来处理缩放、拖拽、滚动以及相关的滚动动画等。委托对象需要实现协议UIScrollViewDelegate。参见教材“案例:滚动视图的使用方法”。iOS应用程序开发方法与实践274.3.1滚动视图滚动视图可以:iOS应用程序开发方法与实4.3.3进度条进度条对应的类为UIProgressView,它同于指示一个可量化任务的当前进度。使用UIProgressView的initWithProgressViewStyle:方法进行初始化。-(id)initWithProgressViewStyle:(UIProgressViewStyle)style;进度条的高度不可调整,是由进度条样式决定。iOS应用程序开发方法与实践284.3.3进度条进度条对应的类为UIProgressVi4.3.3进度条进度条可以:设置或者获取当前进度条显示的进度值:progress属性。设置进度条样式:progressViewStyle属性。iOS应用程序开发方法与实践294.3.3进度条进度条可以:iOS应用程序开发方法与实践24.3.4任务指示器任务指示器对应的类为UIActivityIndicatorView,同于表示一个不可量化的任务正在执行。使用UIActivityIndicatorView的initWithProgressViewStyle:方法进行初始化。-(id)initWithActivityIndicatorStyle:(UIActivityIndicatorViewStyle)style;根据样式自动决定任务指示器的尺寸,即不能手动指定任务指示器的大小。iOS应用程序开发方法与实践304.3.4任务指示器任务指示器对应的类为UIActivit4.3.4任务指示器任务指示器可以:设置或获取任务指示器的当前样式:activityIndicatorViewStyle属性。控制指示器开始或者停止动画:startAnimating与stopAnimating方法。否处于动画状态:isAnimating方法。iOS应用程序开发方法与实践314.3.4任务指示器任务指示器可以:iOS应用程序开发方法4.3.5警告视图警告视图对应的类是UIAlertView,包含标题、消息内容以及若干个按钮。以弹出对话框的方式来提示重要信息,或是提示进行选择。iOS应用程序开发方法与实践324.3.5警告视图警告视图对应的类是UIAlertView4.3.5警告视图警告视图使用UIAlertView的initWithTitle:message:delegate:cancelButtonTitle:otherButtonTitles:方法进行初始化。标题内容消息内容委托对象(实现UIAlertViewDelegate协议)取消按钮标题其他按钮标题iOS应用程序开发方法与实践334.3.5警告视图警告视图使用UIAlertView的in4.3.5警告视图警告视图的委托对象需要实现UIAlertViewDelegate协议。在单击警告视图的某个按钮、进行动画前后以及消失前后调用委托对象的协议方法。协议方法alertView:clickedButtonAtIndex:会在用户单击某个按钮后引发。其中的参数包含了所点击按钮的下标。参见教材“案例:警告视图的使用方法”。iOS应用程序开发方法与实践344.3.5警告视图警告视图的委托对象需要实现UIAlert4.3.7行为列表行为列表与警告视图类似,它也提供了若干按钮,用户可以从中选择一项。行为列表对应的类为UIActionSheet。iOS应用程序开发方法与实践354.3.7行为列表行为列表与警告视图类似,它也提供了若干按4.3.7行为列表行为列表使用UIActionSheet的initWithTitle:message:delegate:cancelButtonTitle:otherButtonTitles:方法进行初始化。标题内容委托对象(实现UIActionSheetDelegate协议)黑色取消按钮标题红色警告按钮标题其他按钮标题iOS应用程序开发方法与实践364.3.7行为列表行为列表使用UIActionSheet的4.3.7
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 淮阴师范学院《名师成长案例研究》2021-2022学年第一学期期末试卷
- 淮阴师范学院《运河文化研究》2022-2023学年第一学期期末试卷
- 淮阴师范学院《刑法(1)》2021-2022学年第一学期期末试卷
- 淮阴师范学院《微机原理与接口技术》2022-2023学年期末试卷
- 淮阴师范学院《合唱与指挥(1)》2022-2023学年第一学期期末试卷
- 淮阴师范学院《操作系统》2022-2023学年期末试卷
- 淮阴工学院《新能源仪器分析》2021-2022学年第一学期期末试卷
- DB4117-T+419-2024兽药消毒剂生产技术要求
- DB2305-T 020-2024牛病毒性腹泻病毒pcr检测规程
- 2025超长期特别国债怎么谋划
- 好看的皮囊千篇一律有趣的灵魂万里挑一
- 某房地产公司项目定位分析
- 部编版三年级上册道德与法治作业设计
- ERAS理念下麻醉与镇痛的优化
- 2023-2024学年四川省泸州市江阳区西路学校七年级(上)期中数学试卷(含解析)
- 2023年下半年软件设计师真题 答案解析(上午选择 下午案例)全国计算机软考
- 初中英语新课程标准词汇表
- 创伤失血性休克中国急诊专家共识(2023)解读
- 学校体育与社区体育融合发展的研究
- 中国旅游地理智慧树知到课后章节答案2023年下平凉职业技术学院
- 工程竣工移交报告
评论
0/150
提交评论