iOS-UIControls介绍
2015-10-06 13:57
435 查看
iOS-UIControls类介绍
UIControl的继承关系
UIControl是 UIKit中UISwitch(开关)、UIButton(按钮)、UISegmentedControl(分段控件)、UISlider(滑块)、UITextField(文本字段控件)、UIPageControl(分页控件)等控件的父类。同时UIControl也是UIView的子类,当然它也是UIResponse的子类。下面是UIControl的关系图
UIControl的作用
从上面的关系图中,我们可以看到,UIControl是UIView的子类,因此我们可以像编写UIView一样编写控件,可以调用addSubview:等方法。
同时他也是UIResponse的子类,也是一个响应者。当对屏幕触发一个点击事件,事件通过响应链传到UIContol的子类上。此时将触发以下事件:
UIResponder父类中触发手势方法(如touchBegan:withEvent)
UIControl对UIResponse中的手势方法进行封装,转换成一个简单的事件。通过指定的事件处理机制,调用对应的方法。
因此,简单的理解就是,UIControl把复杂的触摸事件封装成了简单的易于使用的控件事件。例如通过UIControl对象处理后,按下按钮的事件就被封装成一个控件事件,而不用去判断触摸屏幕的整个操作过程。
例如按钮的单击事件:UIControlEventTouchUpInside
UIControl-Tracking属性介绍
查看UIControl的声明文件,发现有一个属性不太理解,这里特别来说明一下:@property(nonatomic,readonly,getter=isTracking) BOOL tracking; **解释** A Boolean value that indicates whether the receiver is currently tracking touches related to an event. (read-only) The value is YES if the receiver is tracking touches; otherwiseNO. **我的理解** 属性含义:track--跟踪。顾名思义就是当对手势进行跟踪时,此属性为yes。即对control控件使用pan,pinch手势时,此属性为yes。 属性作用:tracking为read-only,只可以观察。用来查看control控件是否处于跟踪手势状态。
既然tracking属性为read-only,只读属性。那么,我们通过什么来控制跟踪状态,我们又通过什么来对pan,pinch手势进行响应呢?
在声明文件tracking下方,有这4个方法,我们可以通过这4个方法来响应手势。
- (BOOL)beginTrackingWithTouch:(UITouch *)touch withEvent:(UIEvent *)event; - (BOOL)continueTrackingWithTouch:(UITouch *)touch withEvent:(UIEvent *)event; - (void)endTrackingWithTouch:(UITouch *)touch withEvent:(UIEvent *)event; - (void)cancelTrackingWithEvent:(UIEvent *)event;
UIControl自定义控件
自定义滑动进度条按钮,用到了
tracking跟踪属性,也触发了一个事件消息。
代码比较简单,我在这个不具体说明了。下面是效果图:
代码地址:
http://download.csdn.net/detail/daiyibo123/9158095
转载地址
http://blog.csdn.net/ryantang03/article/details/7754597http://blog.csdn.net/iukey/article/details/7300412
相关文章推荐
- iOS-UIResponse之事件响应链及其事件传递
- iOS-UIResponse之事件响应链及其事件传递
- 第二十九篇:UIPickerView简述与代码练习
- 扩展 easyui-tabs 插件 关闭标签页方法
- EasyUI-window包含一个iframe,在iframe中如何关闭window
- iOS之UI随笔-图片轮播器
- UI图标素材
- 【译】使用requestIdleCallback
- 索引优先队列-IndexedPrirotyQueue的原理及实现(源码)
- 52. N-Queens II (Graph; WFS)
- 51. N-Queens (Graph; WFS)
- Java笔记---GUI( 图形用户界面)
- UIPopoverController的简单使用
- EasyUI-EasyUI框架入门学习
- String,StringBuffer, StringBuilder 的区别
- UICollectionView 以及 AWCollectionViewDialLayout
- 线段树 csu1551 Longest Increasing Subsequence Again
- UICollectionView使用实例(第三方类的使用及自定义UICollectionViewCell)
- HDU5493 Queue 线段树单点更新
- 在view中实现UIViewController的跳转 By H.L