`
yunlonglove
  • 浏览: 231120 次
社区版块
存档分类
最新评论

IOS学习笔记10—UIControl对象详解

 
阅读更多

上篇讲到了UITouch和UIEvent事件,简单回顾一下,UIEvent是一系列UITouch的集合,在IOS中负责响应触摸事件。另外还提到了响应者链的概念,在IOS中,所有事件有一个最先响应者,事件可以沿着响应者链向下传递。


接下来是UIControl对象

UIControl是UIView的子类,当然也是UIResponder的子类。UIControl是诸如UIButton、UISwitch、UITextField等控件的父类,它本身也包含了一些属性和方法,但是不能直接使用UIControl类,它只是定义了子类都需要使用的方法。


UIControl对象采用了一种新的事件处理机制,将前一节直接处理的触摸事件转换成简单操作,这样可以无需关心用户访问控件的具体方式。触摸事件到达UIControl对象(由响应者链派遣)后,在UIResponder的方法中(如touchBegan:withEvent)中,UIControl将标准的触摸事件转换为特殊的控件事件,简单的理解就是,UIControl把复杂的触摸事件封装成了简单的易于使用的控件事件。例如通过UIControl对象处理后,按下按钮的事件就被封装成一个控件事件,而不用去判断触摸屏幕的整个操作过程。

例如按钮的单击事件:UIControlEventTouchUpInside


我们所需要知道的是UIControl首先将触摸事件转换为控件事件,再转换为带接收放的操作。我们只要编写第二次转换的代码,就是将控件事件转换为有目标的操作。


使用addTarget:action:forControlEvents

这是UIControl的一个方法,为指定的控件对象添加事件,例如:

[controlObj addTarget:recepientObj action @selector(method) froControlEvents : UIControlEvents];

controlObj是要响应事件的控件对象;

参数receientObj是要把消息发送到哪里,一般是self,通常指实例化控件对象的控制器;

action后面是一个选择器,表示该事件需要响应的方法,事件做什么其实就写在这个方法里面;

最后一个是事件类型,表示响应什么样的事件。


使用的两种方式:

1.通过代码

在代码中新建一个按钮,然后为按钮对象添加addTarget:action:forControlEvents方法,然后编写响应方法即可。


2.通过可视化实现

在IB中按住control键,点击鼠标从按钮拖动到对应的.h文件中,就建立了一个IBAction方法,在此方法中编写事件逻辑便可完成事件响应,用这种方法相比第一种来说更直观,开发效率也更高。


后续还会使用IOS中其他控件,但大致原理都是一样的,后面会结合新的知识来使用这些控件,包括对控件的自定义样式等。


分享到:
评论

相关推荐

    ios UIControl类使用方法,ios快速入门

    在iOS开发中,`UIControl` 类是界面交互的基础组件之一,它提供了基本的事件处理机制,使得开发者能够轻松响应用户的触摸操作和其他形式的输入。本教程将详细讲解`UIControl`类的使用方法,帮助新手快速入门iOS开发...

    iOS文字绘制(继承UIControl简单封装类似UILabel的控件)

    在iOS开发中,有时我们需要创建自定义控件以满足特定需求。这个Demo是关于如何通过继承`UIControl`来创建一个类似于`UILabel`的控件,这样我们可以对文字的显示有更多的控制。`UILabel`虽然功能强大,但在某些情况下...

    iOS超级猜图源码代码详解

    《iOS超级猜图源码代码详解》 在iOS开发领域,构建一款类似“看图猜成语”的游戏可以作为初学者的入门项目,也可以为有经验的开发者提供有趣的挑战。本项目名为“超级猜图”,其源码具有一定的学习价值,尽管代码...

    ios应用源码之使用coreanimation自定义的uicontrol 2018127

    本项目“ios应用源码之使用coreanimation自定义的uicontrol”旨在教授如何利用Core Animation来定制自己的UIControl,从而实现更加独特且交互性强的用户界面。 首先,了解Core Animation的基本概念是必要的。Core ...

    IOS应用源码——使用CoreAnimation自定义的UIControl.rar

    总之,“IOS应用源码——使用CoreAnimation自定义的UIControl.rar”这个项目是一个学习如何将Core Animation与UIControl结合使用的宝贵资源。通过深入研究源码,开发者可以掌握如何利用Core Animation的强大力量来...

    深入浅析IOS中UIControl

    在iOS开发中,UIControl是UI responder chain中的一个重要组成部分,它是UIView的子类,同时也是UIResponder的子类。UIControl的主要职责是管理各种用户交互事件,例如触摸事件,并将其转化为可处理的控制事件,简化...

    iOSStudyNote:iOS学习笔记

    iOS学习笔记 十年生死两茫茫,不思量,自难忘,华年短暂,陈辞岁月悠悠伤, 满腔热血已芜荒,展未来,后生强,战战兢兢,如履薄冰心彷徨, 青丝化雪、鬓角成霜,已是英雄迟暮,人生怎慷慨激昂? 目录 内存管理(五) ...

    OC Control UIControl+PQ_EventExtension(按键点击延时).zip

    Target-Action模式是一种常见的设计模式,它允许对象定义一组动作,当特定的事件发生时,这些动作会被执行。在UIControl中,我们可以使用`addTarget:action:forControlEvents:`方法来添加一个目标和对应的动作,然后...

    IOS应用源码Demo-使用CoreAnimation自定义的UIControl-毕设学习.zip

    "IOS应用源码Demo-使用CoreAnimation自定义的UIControl-毕设学习.zip" 这个标题表明这是一个iOS应用的源代码示例项目,特别关注了使用Core Animation来定制UIControl。UIControl是iOS开发中的一个基础组件,它负责...

    IOS应用源码之使用CoreAnimation自定义的UIControl .rar

    Layer是iOS中的轻量级对象,负责绘制屏幕上的内容并管理动画。开发者可以通过设置Layer的属性来改变其外观,比如位置、大小、颜色、透明度等,并且这些改变可以平滑地过渡,形成动画效果。 在自定义UIControl时,...

    IOS应用源码——使用CoreAnimation自定义的UIControl.zip

    总之,这个项目是一个很好的学习材料,可以帮助iOS开发者深入理解Core Animation的使用,以及如何通过它来自定义UIControl,以实现独特且吸引人的用户界面。通过实践这个项目,开发者可以提升自己的iOS应用开发技能...

    fixuilabels:更改“文本”uicontrol 对象的垂直对齐方式-matlab开发

    但是,Matlab 不会为 uicontrol 对象公开 uicontrol 的“VerticalAlignment”设置。 这是修复。 FIXUILABELS 遍历包含在当前 MATLAB 图窗中的 java 对象,并为所有“文本”样式的 uicontrol 调整底层 java 对象,...

    CLICKUICONTROL:模拟单击 UIcontrol 对象。-matlab开发

    CLICKUICONTROL(H) 的行为就像单击 UIControl 对象一样。 该对象可以是以下之一:按钮、复选框、单选按钮、切换按钮、滑块、列表框、弹出菜单。 将适当设置对象的Value属性,并调用对象的Callback(如果将对象的...

    IOS7应用开发入门经典.第5版.pdf.zip

    这涉及到UIControl对象、手势识别器(Gesture Recognizers)以及导航控制器(Navigation Controller)的使用。 6. **数据持久化**:iOS提供了多种存储数据的方式,包括NSUserDefaults、Core Data和SQLite。理解这些...

    iOS_10_by_Tutorials_v0.3

    ### iOS 10 by Tutorials v0.3 #### 知识点概览: 1. **iOS 10概述** 2. **iOS 10新特性介绍** 3. **Swift编程语言** 4. **UIKit框架深入理解** 5. **Core Data在iOS 10中的应用** 6. **Auto Layout与Size Classes...

    MRoundedButton, UIControl子类,如 iOS 7电话应用按钮.zip

    MRoundedButton, UIControl子类,如 iOS 7电话应用按钮 很多感谢 @ZevEisenberg MRoundedButtonMRoundedButton是UIControl的子类,外观类似于 iOS 应用程序按钮button按钮,也可以在 touch/出动画中执行淡入淡出,也...

    iOS消息响应demo

    在iOS开发中,消息响应是理解应用程序内部工作原理的关键部分。这个"iOS消息响应demo"很可能是为了演示如何在Objective-C或Swift中处理用户交互和事件。在这个项目中,我们可能会看到一个简单的应用,它展示了从用户...

    ArcGIS学习笔记

    ### ArcGIS学习笔记知识点梳理 #### 一、ArcObjects开发基础与技巧 ##### 1. 对象组件模型(COM)与ArcObjects - **GIS的发展历史**:地理信息系统(Geographic Information System, GIS)的发展经历了从早期的...

Global site tag (gtag.js) - Google Analytics