Swift - 触摸事件(点击,移动,抬起等)说明及用例

Swift - 触摸事件(点击,移动,抬起等)说明及用例,第1张

概述在iOS开发中,UIGestureRecognizer可以方便的响应处理手势事件。 而如果要想更精细的处理,我们还需要借助touchesBegan,touchesMoved,touchesEnded等触摸方法。这些方法都是UIResponder中的方法。视图控制器和视图类,都是UIResponder的子类。正是这个类,让UIView等相关触摸事件得以响应。 具体方法介绍如下: 1,func tou 在iOS开发中,UIGestureRecognizer可以方便的响应处理手势事件。 而如果要想更精细的处理,我们还需要借助touchesBegan,touchesMoved,touchesEnded等触摸方法。这些方法都是UIResponder中的方法。视图控制器和视图类,都是UIResponder的子类。正是这个类,让UIVIEw等相关触摸事件得以响应。
具体方法介绍如下: 1,func touchesBegan(touches: NSSet,withEvent event: UIEvent) 通知调用者当有一个或者多个手指触摸到了视图或者窗口时触发此方法。 touches是UItouch的集合,通过UItouch我们可以检测触摸事件的属性,是单拍还是双拍,还有触摸的位置等。 2,func touchesMoved(touches: NSSet,51); Font-family:arial; Font-size:14px"> 告诉接收者一个或者多个手指在视图或者窗口上触发移动事件。 默认不允许多点触摸。如果要接收多点触摸事件必须将UIVIEw的属性设置为true。 3,func touchesEnded(touches: NSSet,51); Font-family:arial; Font-size:14px"> 当一个触摸事件结束时发出的UItouch实例对象。 4,func touchesCancelled(touches: NSSet,51); Font-family:arial; Font-size:14px"> 通知接收者当系统发出取消事件的时候(如低内存消耗的告警框) 下面通过一个样例演示触摸事件得用法: @H_301_35@
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 import UIKit class VIEwController : UIVIEwController { overrIDe func vIEwDIDLoad() { super .vIEwDIDLoad() //支持多点触摸 self .vIEw.multipletouchEnabled = true } dIDReceiveMemoryWarning() { .dIDReceiveMemoryWarning() } touchesBegan(touches: Set < UItouch >,withEvent event: UIEvent ?) { for touch: AnyObject in touches { let t: = touch as ! UItouch //当在屏幕上连续拍动两下时,背景恢复为白色 if (t.tapCount == 2) { .vIEw.backgroundcolor = UIcolor .whitecolor() } //当在屏幕上单击时,屏幕变为红色 else (t.tapCount == 1) { .redcolor() } print ( "event begin!" ) } } touchesMoved(touches: ?) { touches { UItouch (t.locationInVIEw( .vIEw)) } } touchesEnded(touches: ?) { //两点触摸时,计算两点间的距离,以及角度 touches.count == 2{ //获取触摸点 first = (touches as NSSet ).allObjects[0] UItouch second = (touches ).allObjects[1] UItouch //获取触摸点坐标 @H_717_403@firstPoint = first.locationInVIEw( .vIEw) secondPoint = second.locationInVIEw( .vIEw) //计算两点间的距离 deltaX = secondPoint.x - firstPoint.x @H_805_419@deltaY = secondPoint.y - firstPoint.y initialdistance = sqrt(deltaX*deltaX + deltaY*deltaY) "两点间距离:\(initialdistance)" ) //计算两点间的角度 height = secondPoint.y - firstPoint.y wIDth = firstPoint.x - secondPoint.x rads = atan(height/wIDth); degrees = 180.0 * Double (rads) / M_PI "两点间角度:\(degrees)" ) } "event end!" ) } touchesCancelled(touches: >?,monospace!important; min-height:inherit!important">?) { "event canceled!" ) } }
总结

以上是内存溢出为你收集整理的Swift - 触摸事件(点击,移动,抬起等)说明及用例全部内容,希望文章能够帮你解决Swift - 触摸事件(点击,移动,抬起等)说明及用例所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1079572.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存