iOS - UIControl
前言
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相关推荐
- 《iOS 6核心开发手册(第4版)》——2.1节UIControl类
本节书摘来自异步社区<iOS 6核心开发手册(第4版)>一书中的第2章,第2.1节UIControl类,作者 [美]Erica Sadun,更多章节内容可以访问云栖社区"异步社区 ...
- ios 监听一个控制器的属性_iOS 事件(UITouch、UIControl、UIGestureRecognizer)传递机制
gitHub地址 : 响应链Demo 文章有点长,如果只是想了解大概过程的,可以直接看后面的总结 一.触摸.事件.响应者 1. UITouch源起触摸一个手指一次触摸屏幕,就对应生成一个UITouch ...
- iOS:转载:UIControl的使用
主要功能: UIContol(控件是所有控件的基类 如:(UIButton)按钮主要用于与用户交互,通常情况下我们不会直接使用UIControl,而是子类化它. 常用属性: BOOL enabled ...
- UIControl IOS控件编程 及UITextField的讲解
第一部分 UIKit提供了一组控件:UISwitch开关.UIButton按钮.UISegmentedControl分段控件.UISlider滑块.UITextField文本字段控件.UIPageCo ...
- UIControl IOS控件编程
UIKit提供了一组控件:UISwitch开关.UIButton按钮.UISegmentedControl分段控件.UISlider滑块.UITextField文本字段控件.UIPageControl ...
- iOS中UIControl的介绍
UIKit提供了一组控件:UISwitch开关.UIButton按钮.UISegmentedControl分段控件.UISlider滑块.UITextField文本字段控件.UIPageControl ...
- 如何运用UIControl自定义iOS中的控件
填坑中... http://www.tuicool.com/articles/jMRrUjY 转载于:https://www.cnblogs.com/rogertan30/p/4613787.html
- ios 图片自动轮播
ios 图片自动轮播 #import "NYViewController.h"#define kImageCount 5@interface NYViewController () ...
- 【ios开发/Xcode】实现登录注册
[ios开发/Xcode]实现登录注册 实现效果 源代码 实现效果 首先进入初始界面,输入账号Linchuantao,密码Linchuantao,显示登录失败(如下左图),因此需要进行注册,点击左下角 ...
最新文章
- Science杂志 | 人类基因组草图发布20周年,遗留的9大问题
- 2014年百度之星程序设计大赛 - 初赛(第二轮)Chess
- 修改RHEL7/centos7网卡为eth0
- 分布式认证-技术方案
- 即时大数据流处理=即时风暴
- azure git怎么使用_Azure(一)Azure Traffic Manager为我们的Web项目提供负载均衡
- python中回车怎么表示_如何在python中使用读取行仅拆分回车符?
- cookie中JSESSIONID的由来
- mysql恢复数据库 慢_Mysqldump导入数据库很慢的解决办法
- 天池notebook
- linux lvm界面,Linux使用入门教程之LVM
- CF gym Coins(01背包计数)
- LeetCode 871. 最低加油次数
- Android SIGABRT的可能原因及开启手机Log日志
- wps中的格式化快捷键
- 男孩子读博好处--转载
- 基于 ijkplayer开发的Android直播软件
- OpenCV_basis
- Homa: A Receiver-Driven Low-Latency Transport Protocol Using Network Priorities(Sigcomm'18) 论文记录
- DOS命令——calcs和icacls
热门文章
- 栅格单元值的选取方法_计算机求解微分方程的六大数值计算方法
- php mysql 连接不上_php连接不上MySQL问题解决办法_PHP教程
- matlab中evrnd函数_【matlab】Matlab中产生正态分布随机数的函数normrnd
- 更新Docker中的Jenkins版本
- 信息安全工程师笔记-10种端口扫描技术概念
- Qt学习笔记-编写简易的音乐播放器
- 三位数组的轴python_关于numpy数组轴的使用详解
- keil4内嵌汇编_keil C中嵌入汇编程序的方法
- 围棋棋盘怎么编程python_围_围是什么意思_围字怎么读_围的含义_围字组词-新东方在线字典...
- xp系统什么梗_老式电脑,装个什么样的系统最好用?