为何把这两个事件归类在一起?

我后来才明白,iOS有一个手势事件(UiGestureRecognizer)

事件里有7个功能,不过我只试过前两个,也就是标题的这两个(长按、平移滑动)

UILongPressGestureRecognizer

长按

UIPanGestureRecognizer

平移滑动
UITapGestureRecognizer 轻拍
UISwipeGestureRecognizer 轻扫
UIPinchGestureRecognizer 捏合缩放
UIRotationGestureRecognizer 旋转
UIScreenEdgePanGestureRecognizer 屏幕边缘平移

具体如何使用呢?先来说明长按事件的绑定吧

我这里绑定的是按钮(Button),绑定前通常都已经有一个按钮对象了吧?例如【@IBOutlet var mButton: UIButton!】

下面直接看代码

let mLongClick = UILongPressGestureRecognizer(target: self, action: #selector(mBtnLongClick)) // 事件对象
mButton.addGestureRecognizer(mLongClick) // 此按钮绑定一个事件  

然后我们再来写事件对象里面的mBtnLongClick方法(事件触发后调用的方法)

@objc func mBtnLongClick(value: UILongPressGestureRecognizer) {
//let point: CGPoint = value.location(in: customBtnTableView)
//let mIndexPath: NSIndexPath = customBtnTableView.indexPathForRow(at: point)! as NSIndexPath if value.state == UIGestureRecognizer.State.began { // 长按事件被触发多次,只有began那次才算数 // 询问要编辑,还是要删除的Alert
print("按钮长按事件") // 记录被用户长按的是哪个cell,等等删除或是编辑需要用到
//actionCount = mIndexPath.row
}
}  

mBtnLongClick里面,有几行注释的代码

由于我使用的地方在TableView的cell里面,为了检测是哪个cell,所以才有这些代码

如果你的按钮对象,不是在cell里面,这些代码不用考虑 

下面来说明平移滑动事件,绑定的方法其实也和刚刚的按钮差不多

这次被绑定的对象,是一个UIImageView,例如【@IBOutlet var mImageView: UIImageView!】

let myPanGesture: UIPanGestureRecognizer = UIPanGestureRecognizer.init(target: self, action: #selector(movedSelect)) // 事件对象
mImageView.addGestureRecognizer(myPanGesture) // 此mImageView绑定一个事件
mImageView.isUserInteractionEnabled = true // 这东西要开启,开启后才能和用户交互

还是一样,少不了要写触发事件后,需要调用的方法movedSelect

@objc func movedSelect(sender: UIPanGestureRecognizer){
let point = sender.location(in: sender.view)
//print("坐标X:\(point.x), 坐标Y:\(point.y)")
}  

获取坐标的代码也在里面了

其他手势我没有试过,嗯....未来有需要用到再来研究吧

【swift】长按事件绑定,平移滑动事件+坐标获取的更多相关文章

  1. js和jQuery中的事件绑定与普通事件

    普通事件,是指直接对元素进行事件注册,然后触发 而事件绑定是将事件注册到元素上 两者区别就是在于普通事件不可以重复添加多个事件,若添加也会覆盖,只会触发其中一个事件(最后注册的那个) 而事件绑定是可以 ...

  2. js课程 5-13 js事件绑定和鼠标事件注意事项有哪些

    js课程 5-13  js事件绑定和鼠标事件注意事项有哪些 一.总结 一句话总结:js代码的灵魂就是改变标签的属性和样式,就这两种. 1.js触发改的东西是哪两样? 属性和样式 2.js如何让页面用标 ...

  3. JS中事件绑定函数,事件捕获,事件冒泡

    1 事件绑定:事件与函数绑定以及怎么取消绑定 1.1 元素.onclick这种形式,如下: <div id="div1">aaa</div> <scr ...

  4. vue_事件绑定 v-on _事件修饰符

    事件绑定 v-on 传参的同时,接收事件对象 <button @click="test('111', $evnt)">哈哈</button> 事件修饰符 阻 ...

  5. javascript事件绑定和普通事件的区别

    <!doctype html><html lang="en"><head> <meta charset="UTF-8" ...

  6. python 全栈开发,Day55(jQuery的位置信息,JS的事件流的概念(重点),事件对象,jQuery的事件绑定和解绑,事件委托(事件代理))

    一.jQuery的位置信息 jQuery的位置信息跟JS的client系列.offset系列.scroll系列封装好的一些简便api. 一.宽度和高度 获取宽度 .width() 描述:为匹配的元素集 ...

  7. 关于js中对事件绑定与普通事件的理解

    普通事件指的是可以用来注册的事件: 事件绑定是指把事件注册到具体的元素之上. 通俗点说: 普通事件:给html元素添加一个特定的属性(如:onclick): 事件绑定:js代码中通过标记(id  ta ...

  8. javascript 的事件绑定和取消事件

    研究fabricjs中发现,它提供canvas.on('mousemove', hh) 来绑定事件, 提供 canvas.off()来取消绑定事件这样的接口,很是方便, 那我们就不妨探究一下内在的实现 ...

  9. 学习javaScript必知必会(4)~事件、事件绑定、取消事件冒泡、事件对象

    1.常用的事件: ① onload:页面加载 ② onblur: 失去焦点 onfocus: 获取焦点 ③ onclick:点击 ④ onmouseover:鼠标经过 onmouseout:鼠标离开 ...

随机推荐

  1. Vue-cli4.xPC端项目Rem适配

    适配准备 安装 (amfe-flexible) 和(postcss-px2rem) 1, 安装依赖并在main.js中引入该依赖 npm i amfe-flexible import "am ...

  2. Python3使用Print输出彩色字体

    一.介绍 在一些开发程序中,有些输出消息需要突出显示,我们可以尝试着给他们换上更靓丽的颜色来突出显示. 二.实现过程 终端的字符颜色是用转义序列控制的,是文本模式下的系统显示功能,和具体的语言无关. ...

  3. 策略路由——使用Router-Policy策略路由进行路由协议的引入

    1.实验目的:实现R3-R2-R1为访问主线路,R3-R4-R1为访问备份线路 2.实验拓扑及IP,如图; 3.基本配置(端口IP) R1: <Huawei>sys[Huawei]sys ...

  4. 【接口】HttpClient 处理get和post请求(二)(2019-07-14 18:41)

    一.环境准备 1.导入httpClient依赖包 <dependency> <groupId>org.apache.httpcomponents</groupId> ...

  5. testNG安装与使用

    1.Eclipse集成TestNG插件 a.下载TestNG离线插件并解压得到features和plugins两个文件夹: b.将features文件下的org.testng.eclipse_6.9. ...

  6. robot_framewok自动化测试--(9)连接并操作 MySql 数据库

    连接并操作 MySql 数据库 1.mysql数据库 1.1安装mysql数据库 请参考我的另一篇文章:MYSQL5.7下载安装图文教程 1.2.准备测试数据 请参考我的另一篇文章:Mysql基础教程 ...

  7. js事件常用操作、事件流

    注册事件 给元素添加事件,称为注册事件或者绑定事件. 注册事件有两种方式:传统方式和方法监听注册方式 传统方式 on开头的事件,例如onclick <button onclick="a ...

  8. Java多线程| 01 | 线程概述

    Java多线程| 01 | 线程概述 线程相关概念 进程与线程 进程:进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是操作系统进行资源分配与调度的基本单位.可以把进程简单的理解 ...

  9. Django笔记&教程 6-1 表单(Form)介绍

    Django 自学笔记兼学习教程第6章第1节--表单(Form)介绍 点击查看教程总目录 1 介绍 如果网站要让用户输入并提交数据(比如注册登录),则需要用到表单. 单纯的html也能写出表单,格式一 ...

  10. oracle基础:怎样把查询的null转换为0、打印、定义变量

    https://blog.csdn.net/xuxile/article/details/49943665 oracle怎样把查询的null转换为0 1.查询的null转换为0 NVL(Expr1,E ...