代码之家  ›  专栏  ›  技术社区  ›  raginggoat

手势识别器不工作

  •  0
  • raginggoat  · 技术社区  · 10 年前

    我在图像视图中添加了左右滑动手势识别器,但只有右滑动有效。

        let swipeLeftRecognizer = UISwipeGestureRecognizer(target: self, action: "swipeLeft")
                swipeLeftRecognizer.direction = .Left
                let swipeRightRecognizer = UISwipeGestureRecognizer(target: self, action: "swipeRight")
                swipeLeftRecognizer.direction = .Right
                if itemImages.count > 1 {
                    imageView.addGestureRecognizer(swipeLeftRecognizer)
                    imageView.addGestureRecognizer(swipeRightRecognizer)
    
                    for recognizer in imageView.gestureRecognizers! {
                        recognizer.delegate = self
                    }
    
    func swipeRight() {
            if currentIndex == 0 {
                itemImages.last!.getDataInBackgroundWithBlock( {
                    (data, error) -> Void in
                    self.imageView.image = UIImage(data: data!)
                })
    
                let transition = CATransition()
                transition.duration = 1.0
                transition.subtype = kCATransitionFromLeft
                transition.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)
                transition.type = kCATransitionReveal
                imageView.layer.addAnimation(transition, forKey: nil)
                currentIndex = itemImages.count - 1
            } else {
                itemImages[currentIndex - 1].getDataInBackgroundWithBlock( {
                    (data, error) -> Void in
                    self.imageView.image = UIImage(data: data!)
                })
    
                let transition = CATransition()
                transition.duration = 1.0
                transition.subtype = kCATransitionFromLeft
                transition.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)
                transition.type = kCATransitionReveal
                imageView.layer.addAnimation(transition, forKey: nil)
                currentIndex--
            }
        }
    
        func swipeLeft() {
            let index = itemImages.count - 1
            if currentIndex == index {
                itemImages[0].getDataInBackgroundWithBlock( {
                    (data, error) -> Void in
                    self.imageView.image = UIImage(data: data!)
                })
    
                let transition = CATransition()
                transition.duration = 1.0
                transition.subtype = kCATransitionFromLeft
                transition.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)
                transition.type = kCATransitionReveal
                imageView.layer.addAnimation(transition, forKey: nil)
                currentIndex = 0
            } else {
                itemImages[currentIndex + 1].getDataInBackgroundWithBlock( {
                    (data, error) -> Void in
                    self.imageView.image = UIImage(data: data!)
                })
    
                let transition = CATransition()
                transition.duration = 1.0
                transition.subtype = kCATransitionFromLeft
                transition.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)
                transition.type = kCATransitionReveal
                imageView.layer.addAnimation(transition, forKey: nil)
                currentIndex++
            }
        }
    
    1 回复  |  直到 10 年前
        1
  •  1
  •   DonatassVZ    10 年前
     let swipeLeftRecognizer = UISwipeGestureRecognizer(target: self, action: "swipeLeft")
            swipeLeftRecognizer.direction = .Left
            let swipeRightRecognizer = UISwipeGestureRecognizer(target: self, action: "swipeRight")
            swipeRightRecognizer.direction = .Right
    

    ///您两次使用“swipeLeftRecognizer.direction”。 现在你的左脚向右移动

    或者你可以将swipeGesture从情节提要连接到你的“swipeLeft”和“swipe Right”方法,之前不要写任何代码