前言

    NS_CLASS_AVAILABLE_IOS(2_0) @interface UIControl : UIView@available(iOS 2.0, *)       public class UIControl : UIView
  • UIControl 从字面翻译成为控制器,可以触发事件,达到和用户进行交互。

1、UIControl 的创建

  • Objective-C

        // 实例化 UIControl 对象UIControl *control = [[UIControl alloc] initWithFrame:CGRectMake(self.view.bounds.size.width/2 - 100, 100, 200, 100)];control.backgroundColor = [UIColor redColor];[self.view addSubview:control];// 添加/删除触发事件/*- (void)addTarget:(nullable id)target action:(SEL)action forControlEvents:(UIControlEvents)controlEvents;- (void)removeTarget:(nullable id)target action:(nullable SEL)action forControlEvents:(UIControlEvents)controlEvents;(id)target:                        响应对象,就是触发了 control 的某个事件后响应谁的方法(SEL)action:                       触发某个事件后响应 target 的哪个方法(UIControlEvents)controlEvents:    触发 control 的哪个事件UIControlEventTouchDown              // 按下UIControlEventTouchDownRepeat        // 双击,连续按下2次UIControlEventTouchDragInside        // 内部拖动,不松手就触发事件,一直触发UIControlEventTouchDragOutside       // 向外拖出,不松手就触发事件,一直触发UIControlEventTouchDragEnterUIControlEventTouchDragExit          // 向外拖出,不松手就触发事件,只触发一次UIControlEventTouchUpInside          // 单击UIControlEventTouchUpOutside         // 向外拖出,松手后触发事件UIControlEventTouchCancelUIControlEventValueChanged           // 数值改变,sliders, etc.UIControlEventEditingDidBegin        // 开始编辑,UITextFieldUIControlEventEditingChanged         // 编辑中UIControlEventEditingDidEnd          // 结束编辑UIControlEventEditingDidEndOnExit    // 结束编辑,'return key' ending editingUIControlEventAllTouchEvents         // 所有事件,for touch eventsUIControlEventAllEditingEvents       // 所有编辑事件,for UITextFieldUIControlEventApplicationReserved    // range available for application useUIControlEventSystemReserved         // range reserved for internal framework useUIControlEventAllEvents*/// 添加触发事件[control addTarget:self action:@selector(controlClick:) forControlEvents:UIControlEventTouchUpInside];// 一个控件可以添加多个事件[control addTarget:self action:@selector(controlClickOther:) forControlEvents:UIControlEventTouchDragOutside];// 删除添加的事件[control removeTarget:self action:@selector(controlClickOther:) forControlEvents:UIControlEventTouchDragOutside];
  • Swift

        // 实例化 UIControl 对象let control:UIControl = UIControl(frame: CGRectMake(self.view.bounds.size.width/2 - 100, 100, 200, 100))control.backgroundColor = UIColor.redColor()self.view.addSubview(control)// 添加/删除触发事件/*public func addTarget(target: AnyObject?, action: Selector, forControlEvents controlEvents: UIControlEvents)public func removeTarget(target: AnyObject?, action: Selector, forControlEvents controlEvents: UIControlEvents)target:         响应对象,就是触发了 control 的某个事件后响应谁的方法action:         触发某个事件后响应 target 的哪个方法controlEvents:  触发 control 的哪个事件TouchDown                   // 按下TouchDownRepeat             // 双击,连续按下2次TouchDragInside             // 内部拖动,不松手就触发事件,一直触发TouchDragOutside            // 向外拖出,不松手就触发事件,一直触发TouchDragEnter TouchDragExit               // 向外拖出,不松手就触发事件,只触发一次TouchUpInside               // 单击TouchUpOutside              // 向外拖出,松手后触发事件TouchCancel ValueChanged                // 数值改变,sliders, etc.EditingDidBegin             // 开始编辑,UITextFieldEditingChanged              // 编辑中EditingDidEnd               // 结束编辑EditingDidEndOnExit         // 结束编辑,'return key' ending editingAllTouchEvents              // 所有事件,for touch eventsAllEditingEvents            // 所有编辑事件,for UITextFieldApplicationReserved         // range available for application useSystemReserved              // range reserved for internal framework useAllEvents */// 添加触发事件control.addTarget(self, action: #selector(UiControl.controlClick(_:)), forControlEvents: .TouchUpInside)// 一个控件可以添加多个事件control.addTarget(self, action: #selector(UiControl.controlClickOther(_:)), forControlEvents: .TouchDragOutside)// 删除添加的事件control.removeTarget(self, action: #selector(UiControl.controlClickOther(_:)), forControlEvents: .TouchDragOutside)

2、自定义点击触发事件处理

  • Objective-C

        // 控件触发事件处理,一般响应方法都会有一个参数,没有也可以,该参数一般是触发的对象- (void)controlClick: (UIControl *)control {}- (void)controlClickOther: (UIControl *)control {}
  • Swift

        // 控件触发事件处理,一般响应方法都会有一个参数,没有也可以,该参数一般是触发的对象func controlClick(control:UIControl) {}func controlClickOther(control:UIControl) {}

转载于:https://www.cnblogs.com/QianChia/p/5754473.html

iOS - UIControl相关推荐

  1. 《iOS 6核心开发手册(第4版)》——2.1节UIControl类

    本节书摘来自异步社区<iOS 6核心开发手册(第4版)>一书中的第2章,第2.1节UIControl类,作者 [美]Erica Sadun,更多章节内容可以访问云栖社区"异步社区 ...

  2. ios 监听一个控制器的属性_iOS 事件(UITouch、UIControl、UIGestureRecognizer)传递机制

    gitHub地址 : 响应链Demo 文章有点长,如果只是想了解大概过程的,可以直接看后面的总结 一.触摸.事件.响应者 1. UITouch源起触摸一个手指一次触摸屏幕,就对应生成一个UITouch ...

  3. iOS:转载:UIControl的使用

    主要功能: UIContol(控件是所有控件的基类 如:(UIButton)按钮主要用于与用户交互,通常情况下我们不会直接使用UIControl,而是子类化它. 常用属性: BOOL enabled ...

  4. UIControl IOS控件编程 及UITextField的讲解

    第一部分 UIKit提供了一组控件:UISwitch开关.UIButton按钮.UISegmentedControl分段控件.UISlider滑块.UITextField文本字段控件.UIPageCo ...

  5. UIControl IOS控件编程

    UIKit提供了一组控件:UISwitch开关.UIButton按钮.UISegmentedControl分段控件.UISlider滑块.UITextField文本字段控件.UIPageControl ...

  6. iOS中UIControl的介绍

    UIKit提供了一组控件:UISwitch开关.UIButton按钮.UISegmentedControl分段控件.UISlider滑块.UITextField文本字段控件.UIPageControl ...

  7. 如何运用UIControl自定义iOS中的控件

    填坑中... http://www.tuicool.com/articles/jMRrUjY 转载于:https://www.cnblogs.com/rogertan30/p/4613787.html

  8. ios 图片自动轮播

    ios 图片自动轮播 #import "NYViewController.h"#define kImageCount 5@interface NYViewController () ...

  9. 【ios开发/Xcode】实现登录注册

    [ios开发/Xcode]实现登录注册 实现效果 源代码 实现效果 首先进入初始界面,输入账号Linchuantao,密码Linchuantao,显示登录失败(如下左图),因此需要进行注册,点击左下角 ...

最新文章

  1. Science杂志 | 人类基因组草图发布20周年,遗留的9大问题
  2. 2014年百度之星程序设计大赛 - 初赛(第二轮)Chess
  3. 修改RHEL7/centos7网卡为eth0
  4. 分布式认证-技术方案
  5. 即时大数据流处理=即时风暴
  6. azure git怎么使用_Azure(一)Azure Traffic Manager为我们的Web项目提供负载均衡
  7. python中回车怎么表示_如何在python中使用读取行仅拆分回车符?
  8. cookie中JSESSIONID的由来
  9. mysql恢复数据库 慢_Mysqldump导入数据库很慢的解决办法
  10. 天池notebook
  11. linux lvm界面,Linux使用入门教程之LVM
  12. CF gym Coins(01背包计数)
  13. LeetCode 871. 最低加油次数
  14. Android SIGABRT的可能原因及开启手机Log日志
  15. wps中的格式化快捷键
  16. 男孩子读博好处--转载
  17. 基于 ijkplayer开发的Android直播软件
  18. OpenCV_basis
  19. Homa: A Receiver-Driven Low-Latency Transport Protocol Using Network Priorities(Sigcomm'18) 论文记录
  20. DOS命令——calcs和icacls

热门文章

  1. 栅格单元值的选取方法_计算机求解微分方程的六大数值计算方法
  2. php mysql 连接不上_php连接不上MySQL问题解决办法_PHP教程
  3. matlab中evrnd函数_【matlab】Matlab中产生正态分布随机数的函数normrnd
  4. 更新Docker中的Jenkins版本
  5. 信息安全工程师笔记-10种端口扫描技术概念
  6. Qt学习笔记-编写简易的音乐播放器
  7. 三位数组的轴python_关于numpy数组轴的使用详解
  8. keil4内嵌汇编_keil C中嵌入汇编程序的方法
  9. 围棋棋盘怎么编程python_围_围是什么意思_围字怎么读_围的含义_围字组词-新东方在线字典...
  10. xp系统什么梗_老式电脑,装个什么样的系统最好用?