UI控件基本介绍

1:继承关系:

UI控件继承UIView,UIView继承UIResponder,UIResponder为用户操作的响应者。

 

2:控件分类:

活动控件:可触发各类事件。继承UIControl基类。

静态控件:基本用于显示,继承UIView基类。常见的有UILabel,UIImageView,UIScrollView。

被动控件:用于接收用户输入的值。比如UITextField.

 

我觉得只要看某个UI控件继承哪个基类就行了。继承UIControl的活动控件,有一些通用的行为与方法。

 

3:继承UIControl基类的控件

能完成一系列的用户交互。

添加事件:

-(void)addTarget:(id)target action:(SEL)action forControlEvents:(UIControlEvents)events;

控件状态:

Default:默认   Highlighted:高亮(用highlighted来判断)   Selected:选中(用selected来判断)   Disabled:禁用(用enabled来判断)。

以button为例,可以为不同的状态设置不同的现实。

事件说明:(摘自网络)

事件可以用逻辑OR合并在一起,因此可以再一次单独的addTarget调用中指定多个事件。下列事件为基类UIControl所支持,除非另有说明,也适用于所有控件。
UIControlEventTouchDown                       单点触摸按下事件:用户点触屏幕,或者又有新手指落下的时候。
IControlEventTouchDownRepeat              多点触摸按下事件,点触计数大于1:用户按下第二、三、或第四根手指的时候。

说明:多次重复按下时,事件序列是这样的:

UIControlEventTouchDown -> 
(UIControlEventTouchUpInside) -> 
UIControlEventTouchDown -> 
UIControlEventTouchDownRepeat ->  
(UIControlEventTouchUpInside) -> 
UIControlEventTouchDown -> 
UIControlEventTouchDownRepeat -> 
(UIControlEventTouchUpInside) ->

。。。。。

 

 

UIControlEventTouchDragInside              当一次触摸在控件窗口内拖动时。
UIControlEventTouchDragOutside            当一次触摸在控件窗口之外拖动时。
UIControlEventTouchDragEnter                当一次触摸从控件窗口之外拖动到内部时。
UIControlEventTouchDragExit                   当一次触摸从控件窗口内部拖动到外部时。
UIControlEventTouchUpInside                   所有在控件之内触摸抬起事件。
UIControlEventTouchUpOutside                所有在控件之外触摸抬起事件(点触必须开始与控件内部才会发送通知)。
UIControlEventTouchCancel                       所有触摸取消事件,即一次触摸因为放上了太多手指而被取消,或者被上锁或者电话呼叫打断。
UIControlEventTouchChanged                   当控件的值发生改变时,发送通知。用于滑块、分段控件、以及其他取值的控件。你可以配置滑块控件何时发送通知,在滑块被放下时发送,或者在被拖动时发送。
UIControlEventEditingDidBegin                 当文本控件中开始编辑时发送通知。
UIControlEventEditingChanged                  当文本控件中的文本被改变时发送通知。UIControlEventEditingDidEnd当文本控件中编辑结束时发送通知。
UIControlEventEditingDidOnExit               当文本控件内通过按下回车键(或等价行为)结束编辑时,发送通知。
UIControlEventAlltouchEvents                   通知所有触摸事件。
UIControlEventAllEditingEvents                 通知所有关于文本编辑的事件。
UIControlEventAllEvents                            通知所有事件。除了默认事件以外,自定义控件类还可以用0x0F000000到0x0FFFFFFF之间的值,来定义他们自己的时间。
要删除一个或多个事件的相应动作,可以使用UIControl类的removeTarget方法。使用nil值就可以将给定事件目标的所有动作删除
 
修改控件显示外观,可以修改控件的layer。具体查layer资料。

 

posted @ 2015-05-19 23:24  奈何船夫  阅读(703)  评论(0编辑  收藏  举报