您的位置:首页 > 产品设计 > UI/UE

【IOS 开发学习总结-OC-42】★ios开发——UI控件之UIControl基类

2015-10-11 14:25 489 查看
开发应用程序时,我们可以使用UIControl控件与用户交互。但一般不会直接使用UIControl控件,而是使用它的子类。

UIControl这个基类,主要定义了所有子类的通用接口和行为结构。

为什么是这样的呢?

因为所有的UIControl的子控件都是能与用户交互的控件,所以UIControl的主要角色是:定义通用接口,并为这些活动控件的事件机制提供通用的实现——当活动控件发生指定的事件时,UIControl控件会初始化 Action消息,并将该消息发送给事件处理方法。

UIControl与 UIView 的关系

UIControl是 UIView的子类,具有UIView 的所有外观和行为。

UIControl提供的常用方法:

-(void)addTarget:<#(nullable id)#> action:<#(nonnull SEL)#> forControlEvents:<#(UIControlEvents)#>


(void)-removeTarget:<#(nullable id)#> action:<#(nullable SEL)#> forControlEvents:<#(UIControlEvents)#>


-(NSArray*)actionsForTarget:<#(nullable id)#> forControlEvent:<#(UIControlEvents)#>


-(NSSet*)allTargets


-(UIControlEvents)allControlEvents


UI 控件的状态

每个UI 控件都有4种不同的状态,并且它们在任意时刻总处于以下4个状态之一:

1. 普通:——所有控件的默认状态;

2. 高亮:——当 UI控件需要突出显示时,它处于高亮状态;

3. 禁用:——当 UI控件被关闭,它就处于禁用状态。——此时的 控件是不可操作的。设置方法:①interface builder 中取消 enable 复选 框;②控件的 enable 属性设为 NO;

4. 选中:——通常用于标识该控件已经被启用或选中。

如何检测判断 UI 控件所处的状态呢?

上面 的状态可以通过如下常用属性进行判断:

- enable:判断该UIControl 控件是否可用;

- selected:判断该UIControl 控件是否被i选中;

- highlight:判断该UIControl 控件是否高亮;

示例(以 UIButton 为例):



如何更改/定制UIControl控件被触碰时的外观呢?

有时候,我们需要在控件在触碰的时候更改控件的外观(如按钮控件),我们怎么实现我们的目的呢 ?

这个时候我们可以通过 重写UIControl控件的如下方法就可以了:

1.
- beginTrackingWithTouch: withEvent:
:用户开始触碰该UIControl控件时,自动激发该方法;——重写该方法更改 开始触碰该UIControl控件时的控件外观 ;

2.
-continueTrackingWithTouch: withEvent:
:当用户连续触碰该UIControl控件时,自动激发该方法。——重写该方法在用户连续触碰该UIControl控件时的更改 外观 ;

3. -
endTrackingWithTouch: withEvent:
:当用户结束触碰该UIControl控件时,自动激发该方法。——重写该方法在用结束触碰该UIControl控件时的更改外观 。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息