IOS UIGestureRecognizer

来源:互联网 发布:linux执行shell脚本 编辑:程序博客网 时间:2024/05/17 04:02



import UIKitclass ViewController: UIViewController {          var rect:UIView!        override func viewDidLoad() {        super.viewDidLoad()                let swipeUp = UISwipeGestureRecognizer(target:self, action:Selector("swipe:"))        swipeUp.direction = UISwipeGestureRecognizerDirection.Up        self.view.addGestureRecognizer(swipeUp)                let swipeDown = UISwipeGestureRecognizer(target:self, action:Selector("swipe:"))        swipeDown.direction = UISwipeGestureRecognizerDirection.Down        self.view.addGestureRecognizer(swipeDown)                let swipeLeft = UISwipeGestureRecognizer(target:self, action:Selector("swipe:"))        swipeLeft.direction = UISwipeGestureRecognizerDirection.Left        self.view.addGestureRecognizer(swipeLeft)                let swipeRight = UISwipeGestureRecognizer(target:self, action:Selector("swipe:"))        swipeRight.direction = UISwipeGestureRecognizerDirection.Right        self.view.addGestureRecognizer(swipeRight)                //单击监听        let tapSingle=UITapGestureRecognizer(target:self,action:"tapSingleDid")        tapSingle.numberOfTapsRequired=1        tapSingle.numberOfTouchesRequired=1        //双击监听        let tapDouble=UITapGestureRecognizer(target:self,action:"tapDoubleDid:")        tapDouble.numberOfTapsRequired=2        tapDouble.numberOfTouchesRequired=1        //声明点击事件需要双击事件检测失败后才会执行        tapSingle.requireGestureRecognizerToFail(tapDouble);        self.view.addGestureRecognizer(tapSingle)        self.view.addGestureRecognizer(tapDouble)                //设置监听方法为pinchDid方法(捏合手势(两个手指进行放大缩小))        let pinch=UIPinchGestureRecognizer(target:self,action:"pinchDid:")        self.view.addGestureRecognizer(pinch)                //旋转手势        let rotation=UIRotationGestureRecognizer(target:self,action:"rotationDid:")        self.view.addGestureRecognizer(rotation)                rect=UIView(frame:CGRectMake(0, 0, 100, 100))        rect.center=self.view.center        rect.backgroundColor=UIColor.redColor()        self.view.addSubview(rect)                //拖动手势        let pan = UIPanGestureRecognizer(target:self,action:"panDid:")        pan.maximumNumberOfTouches=1        rect.addGestureRecognizer(pan)                    }        func panDid(recognizer:UISwipeGestureRecognizer){        let point=recognizer.locationInView(self.view)        //设置矩形的位置        rect.center=point    }        func swipe(recognizer:UISwipeGestureRecognizer){        if recognizer.direction == UISwipeGestureRecognizerDirection.Up{            print("向上滑动")        }else if recognizer.direction == UISwipeGestureRecognizerDirection.Down{            print("向下滑动")        }else if recognizer.direction == UISwipeGestureRecognizerDirection.Left{            print("向左滑动")        }else if recognizer.direction == UISwipeGestureRecognizerDirection.Right{            print("向右滑动")        }                let point=recognizer.locationInView(self.view)        //这个点是滑动的起点        print(point.x)        print(point.y)    }        func rotationDid(recognizer:UIRotationGestureRecognizer){        //旋转的弧度转换为角度        print(recognizer.rotation*(180/CGFloat(M_PI)))    }        func pinchDid(recognizer:UIPinchGestureRecognizer)    {        //在监听方法中可以实时获得捏合的比例        print(recognizer.scale);    }            func tapSingleDid(){        print("单击了")    }        func tapDoubleDid(sender:UITapGestureRecognizer){        if sender.view == self.view{            print("双击了")        }    }            }


0 0
原创粉丝点击