【swift】长按事件绑定,平移滑动事件+坐标获取
为何把这两个事件归类在一起?
我后来才明白,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】长按事件绑定,平移滑动事件+坐标获取的更多相关文章
- js和jQuery中的事件绑定与普通事件
普通事件,是指直接对元素进行事件注册,然后触发 而事件绑定是将事件注册到元素上 两者区别就是在于普通事件不可以重复添加多个事件,若添加也会覆盖,只会触发其中一个事件(最后注册的那个) 而事件绑定是可以 ...
- js课程 5-13 js事件绑定和鼠标事件注意事项有哪些
js课程 5-13 js事件绑定和鼠标事件注意事项有哪些 一.总结 一句话总结:js代码的灵魂就是改变标签的属性和样式,就这两种. 1.js触发改的东西是哪两样? 属性和样式 2.js如何让页面用标 ...
- JS中事件绑定函数,事件捕获,事件冒泡
1 事件绑定:事件与函数绑定以及怎么取消绑定 1.1 元素.onclick这种形式,如下: <div id="div1">aaa</div> <scr ...
- vue_事件绑定 v-on _事件修饰符
事件绑定 v-on 传参的同时,接收事件对象 <button @click="test('111', $evnt)">哈哈</button> 事件修饰符 阻 ...
- javascript事件绑定和普通事件的区别
<!doctype html><html lang="en"><head> <meta charset="UTF-8" ...
- python 全栈开发,Day55(jQuery的位置信息,JS的事件流的概念(重点),事件对象,jQuery的事件绑定和解绑,事件委托(事件代理))
一.jQuery的位置信息 jQuery的位置信息跟JS的client系列.offset系列.scroll系列封装好的一些简便api. 一.宽度和高度 获取宽度 .width() 描述:为匹配的元素集 ...
- 关于js中对事件绑定与普通事件的理解
普通事件指的是可以用来注册的事件: 事件绑定是指把事件注册到具体的元素之上. 通俗点说: 普通事件:给html元素添加一个特定的属性(如:onclick): 事件绑定:js代码中通过标记(id ta ...
- javascript 的事件绑定和取消事件
研究fabricjs中发现,它提供canvas.on('mousemove', hh) 来绑定事件, 提供 canvas.off()来取消绑定事件这样的接口,很是方便, 那我们就不妨探究一下内在的实现 ...
- 学习javaScript必知必会(4)~事件、事件绑定、取消事件冒泡、事件对象
1.常用的事件: ① onload:页面加载 ② onblur: 失去焦点 onfocus: 获取焦点 ③ onclick:点击 ④ onmouseover:鼠标经过 onmouseout:鼠标离开 ...
随机推荐
- DeWeb 简介
DeWeb是一个可以直接将Delphi程序快速转换为网页应用的工具! 使用DeWeb, 开发者不需要学习HTML.JavaScript.Java.PHP.ASP.C#等新知识,用Delphi搞定一切. ...
- Spring Cloud Alibaba 使用Feign进行服务消费
为什么使用Feign? Feign可以把Rest的请求进行隐藏,伪装成类似SpringMVC的Controller一样.你不用再自己拼接url,拼接参数等等操作,一切都交给Feign去做. 使用Fei ...
- ELK集群之filebeat(6)
filebeat工作原理 ilebeat是本地文件的日志数据采集器. 作为服务器上的代理安装,Filebeat监视日志目录或特定日志文件,tail file,并将它们转发给Elasticsearch或 ...
- Java多线程| 01 | 线程概述
Java多线程| 01 | 线程概述 线程相关概念 进程与线程 进程:进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是操作系统进行资源分配与调度的基本单位.可以把进程简单的理解 ...
- Java学习(九)
今天先学习了内联框架的知识,使用iframe的标签,还有超链接的知识. 做了个小实践 <!DOCTYPE html> <head> <meta charset=" ...
- java 邮件 接收与发送
... package com.e6soft; import java.io.BufferedReader; import java.io.FileOutputStream; import java. ...
- [atAGC054E]ZigZag Break
结论:(不妨假设$p_{1}<p_{n}$)$\{p_{i}\}$合法当且仅当$\exists 1\le i\le n-1$,使得$p_{1}\ge p_{i}$且$p_{i+1}\ge p_{ ...
- [hdu7078]Pty with card
显然问题被分为两部分,先考虑如何求$F(n)$-- 令第一次所选的人编号为1,其之后所有人按顺时针依次编号为$2,3,...,n$,那么用一个序列来描述状态,其中第$i$个元素为当前存在的人中编号第$ ...
- [cf1261F]Xor-Set
构造一棵权值范围恰为$[0,2^{60})$的权值线段树,考虑其中从下往上第$h$层($0\le h\le 60$)中的一个区间,假设其左端点为$l$,即$[l,l+2^{h})$ 这样的一个区间具有 ...
- [noi39]子图
小w喜欢的图可以发现就是一棵森林(是不是很神奇,其实易证:如果有环那么环本身就不合法,如果没有环那么显然合法).继续研究发现删边最小<=>选边最大<=>最大生成森林,krusk ...