【IOS 开发学习总结-OC-42】★ios开发——UI控件之UIControl基类
2015-10-11 14:25
489 查看
开发应用程序时,我们可以使用UIControl控件与用户交互。但一般不会直接使用UIControl控件,而是使用它的子类。
UIControl这个基类,主要定义了所有子类的通用接口和行为结构。
为什么是这样的呢?
因为所有的UIControl的子控件都是能与用户交互的控件,所以UIControl的主要角色是:定义通用接口,并为这些活动控件的事件机制提供通用的实现——当活动控件发生指定的事件时,UIControl控件会初始化 Action消息,并将该消息发送给事件处理方法。
1. 普通:——所有控件的默认状态;
2. 高亮:——当 UI控件需要突出显示时,它处于高亮状态;
3. 禁用:——当 UI控件被关闭,它就处于禁用状态。——此时的 控件是不可操作的。设置方法:①interface builder 中取消 enable 复选 框;②控件的 enable 属性设为 NO;
4. 选中:——通常用于标识该控件已经被启用或选中。
- enable:判断该UIControl 控件是否可用;
- selected:判断该UIControl 控件是否被i选中;
- highlight:判断该UIControl 控件是否高亮;
示例(以 UIButton 为例):
这个时候我们可以通过 重写UIControl控件的如下方法就可以了:
1.
2.
3. -
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控件时的更改外观 。
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 如何成为一名专家级的开发人员
- 100 个最佳 Ubuntu 应用(中)
- 在 AppImage、Flathub 和 Snapcraft 平台上搜索 Linux 应用
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- 24 个必备的 Linux 应用程序
- 注册表趣味应用小集
- 远程控制技术的应用
- flex 控件的重要属性
- 路由器访问列表的应用
- xDSL技术及其应用
- Delphi控件ListView的属性及使用方法详解
- 基于XML的桌面应用
- web下载的ActiveX控件自动更新
- SQL Server 2008 R2 应用及多服务器管理