2016-01-20 54 views
0

我已經將左右滑動手勢識別器添加到圖像視圖中,但只有右側滑動才起作用。手勢識別器不能正常工作

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
let swipeLeftRecognizer = UISwipeGestureRecognizer(target: self, action: "swipeLeft") 
     swipeLeftRecognizer.direction = .Left 
     let swipeRightRecognizer = UISwipeGestureRecognizer(target: self, action: "swipeRight") 
     swipeRightRecognizer.direction = .Right 

///你兩次使用 'swipeLeftRecognizer.direction'。 現在有正確的方向

或者你也可以從故事板瞬移swipeGesture你「swipeLeft」和「swipeRight」法不前

+0

感謝編寫任何代碼的leftSwite工作。我不能相信我錯過了這一點。我盯着這永遠。 – raginggoat