swift中的手势

swift中的手势,第1张

概述手势 *** 作主要包括如下几类 手势 属性 说明 点击 UITapGestureRecognizer numberOfTapsRequired:点击的次数;numberOfTouchesRequired:点击时有手指数量 设置属性 numberOfTapsRequired 可以实现单击,或双击的效果 滑动 UISwipeGestureRecognizer direction:滑动方向 direction

手势 *** 作主要包括如下几类

手势 属性 说明
点击 UITapGestureRecognizer numberOfTapsrequired:点击的次数;numberOftouchesrequired:点击时有手指数量 设置属性 numberOfTapsrequired 可以实现单击,或双击的效果
滑动 UISwipeGestureRecognizer direction:滑动方向 direction 滑动方向分为上Up、下Down、左left、右Right
拖动 UIPanGestureRecognizer 在拖动过程中,通过方法 translationInVIEw 获取拖动时的位移
长按 UILongPressGestureRecognizer minimumPressDuration:长按最少时间
旋转 UIRotationGestureRecognizer
缩放 UIPinchGestureRecognizer

注意:手势效果在实施过程中,存在几种状态:
* Began
* Ended
* Cancelled
* Failed
* Possible

代码示例

// 点击let label = UILabel(frame: CGRectMake(10.0,10.0,(self.vIEw.frame.size.wIDth - 10.0 * 2),60.0))self.vIEw.addSubvIEw(label)label.backgroundcolor = UIcolor.lightGraycolor()label.text = "手势 *** 作-单指单击手势";label.adjustsFontSizetoFitWIDth = truelabel.textAlignment = .Center;// 添加手势let tapRecognizer = UITapGestureRecognizer(target: self,action: Selector("tapClick:"))tapRecognizer.numberOfTapsrequired = 1tapRecognizer.numberOftouchesrequired = 1label.userInteractionEnabled = truelabel.addGestureRecognizer(tapRecognizer)// 手势响应方法func tapClick(recognizer:UITapGestureRecognizer){        let label:UILabel = recognizer.vIEw as! UILabel        label.textcolor = UIcolor.redcolor()}
// 滑动let label = UILabel(frame: CGRectMake(10.0,60.0))self.vIEw.addSubvIEw(label)label.backgroundcolor = UIcolor.lightGraycolor()label.text = "手势 *** 作-左滑手势";label.adjustsFontSizetoFitWIDth = truelabel.textAlignment = .Center;// 添加手势let swipeleftRecognizer = UISwipeGestureRecognizer(target: self,action: Selector("swipeleftClick:"))swipeleftRecognizer.direction = .leftswipeleftRecognizer.numberOftouchesrequired = 1label.userInteractionEnabled = truelabel.addGestureRecognizer(swipeleftRecognizer)// 手势响应方法func swipeleftClick(recognizer:UISwipeGestureRecognizer){        let label = recognizer.vIEw        label!.backgroundcolor = UIcolor.orangecolor()}
// 拖动let label = UILabel(frame: CGRectMake(10.0,100.0,100.0))self.vIEw.addSubvIEw(label)label.backgroundcolor = UIcolor.lightGraycolor()label.text = "手势 *** 作-拖动手势";label.adjustsFontSizetoFitWIDth = truelabel.textAlignment = .Center;// 添加手势let panRecognizer = UIPanGestureRecognizer(target: self,action: Selector("panClick:"))label.userInteractionEnabled = truelabel.addGestureRecognizer(panRecognizer)var pointValue:CGPoint! = CGPointZero // 移动// 手势响应方法func panClick(recognizer:UIPanGestureRecognizer){        let label:UILabel = recognizer.vIEw as! UILabel        let point = recognizer.translationInVIEw(label)        print("pan point = \(point)")        // 移动        label.transform = CGAffinetransformMakeTranslation(point.x + self.pointValue.x,point.y + self.pointValue.y)        if recognizer.state == .Began        {            label.backgroundcolor = UIcolor.yellowcolor()            self.vIEw.bringSubvIEwToFront(label)        }        else if recognizer.state == .Ended        {            label.backgroundcolor = UIcolor.lightGraycolor()            self.pointValue.x += point.x            self.pointValue.y += point.y        }}
// 缩放let label = UILabel(frame: CGRectMake(10.0,200.0,200.0))self.vIEw.addSubvIEw(label)label.backgroundcolor = UIcolor.lightGraycolor()label.text = "手势 *** 作-捏合手势";label.adjustsFontSizetoFitWIDth = truelabel.textAlignment = .Center;// 添加手势let pinchRecognizer = UIPinchGestureRecognizer(target: self,action: Selector("pinchClick:"))label.userInteractionEnabled = truelabel.addGestureRecognizer(pinchRecognizer)// 手势响应方法var scaleValue:CGfloat! = 1.0  // 缩放func pinchClick(recognizer:UIPinchGestureRecognizer){        let label:UILabel = recognizer.vIEw as! UILabel        let scale = recognizer.scale;        if scale > 1.0        {            // 放大            label.transform = CGAffinetransformMakeScale(self.scaleValue + scale - 1.0,self.scaleValue + scale - 1.0)        }        else        {            // 缩小            label.transform = CGAffinetransformMakeScale(self.scaleValue * scale,self.scaleValue * scale)        }        if recognizer.state == .Began        {            label.backgroundcolor = UIcolor.greencolor()            self.vIEw.bringSubvIEwToFront(label)        }        else if recognizer.state == .Ended        {            label.backgroundcolor = UIcolor.lightGraycolor()            if scale > 1.0            {                self.scaleValue = self.scaleValue + scale - 1.0;            }            else            {                self.scaleValue = self.scaleValue * scale            }        }}
// 旋转let label = UILabel(frame: CGRectMake(10.0,200.0))self.vIEw.addSubvIEw(label)label.backgroundcolor = UIcolor.lightGraycolor()label.text = "手势 *** 作-旋转手势";label.adjustsFontSizetoFitWIDth = truelabel.textAlignment = .Center;// 添加手势let rotationRecognizer = UIRotationGestureRecognizer(target: self,action: Selector("ratotionClick:"))label.userInteractionEnabled = truelabel.addGestureRecognizer(rotationRecognizer)var rotationValue:CGfloat! = 1.0 // 旋转// 手势响应方法func ratotionClick(recognizer:UIRotationGestureRecognizer){        let label:UILabel = recognizer.vIEw as! UILabel        let rotation = recognizer.rotation        label.transform = CGAffinetransformMakeRotation(rotation + self.rotationValue)        if recognizer.state == .Began        {            label.backgroundcolor = UIcolor.greencolor()            self.vIEw.bringSubvIEwToFront(label)        }        else if recognizer.state == .Ended        {            label.backgroundcolor = UIcolor.lightGraycolor()            self.rotationValue = self.rotationValue + rotation        }}
// 长按let label = UILabel(frame: CGRectMake(10.0,60.0))self.vIEw.addSubvIEw(label)label.backgroundcolor = UIcolor.lightGraycolor()label.text = "手势 *** 作-长按手势";label.adjustsFontSizetoFitWIDth = truelabel.textAlignment = .Center;// 添加手势let pressRecognizer = UILongPressGestureRecognizer(target: self,action: Selector("pressClick:"))        pressRecognizer.minimumPressDuration = 3.0        label.userInteractionEnabled = true        label.addGestureRecognizer(pressRecognizer)// 手势响应方法func pressClick(recognizer:UILongPressGestureRecognizer){        let label:UILabel = recognizer.vIEw as! UILabel        if recognizer.state == .Began        {            let alertVIEw = UIAlertVIEw(Title: nil,message: "长按响应",delegate: nil,cancelbuttonTitle: "知道了")            alertVIEw.show()            label.backgroundcolor = UIcolor.orangecolor()            self.vIEw.bringSubvIEwToFront(label)        }        else if recognizer.state == .Ended        {            label.backgroundcolor = UIcolor.lightGraycolor()        }}
总结

以上是内存溢出为你收集整理的swift中的手势全部内容,希望文章能够帮你解决swift中的手势所遇到的程序开发问题。

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

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

原文地址:https://54852.com/web/1060784.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存