我想在 swift 中左右滑动

i want to swipe right and left in swift

我在 xcode 7 ( swift ) 中有一个项目,我想加载在情节提要中设计的不同视图控制器,其功能是左右滑动并转到下一个 viewcontroller 或背部。 现在我有了这个,但只从右到左淡入,我想要两个淡入。

func respondToSwipeGesture(sender: UISwipeGestureRecognizer) {

    switch sender.direction {
    case UISwipeGestureRecognizerDirection.Right:
        print("SWIPED DERECHA")
       self.performSegueWithIdentifier("cambio2", sender: nil)
    case UISwipeGestureRecognizerDirection.Left:
        print("SWIPED IZQUIERDA")
        self.performSegueWithIdentifier("cambio", sender: nil)
    default:
        break
    }
}

UISwipeGestureRecognizer应该只允许一个方向,你应该使用UIPanGestureRecognizer.

let swipe = UIPanGestureRecognizer(target: self, action: "respondToSwipeGesture:")
        self.view.addGestureRecognizer(swipe);


func respondToSwipeGesture(sender: UIPanGestureRecognizer) {
        let point = sender.velocityInView(self.view)
        //left or right
        if point.x > 0 {
            self.performSegueWithIdentifier("segue1", sender: nil)
        }else{
            self.performSegueWithIdentifier("segue2", sender: nil)
        }

当然两个控制器都应该在 UINavigationController

故事板设置:

你的做法全错了。您需要研究交互式自定义转换。因此,例如,如果您想左右滑动以表示在导航控制器中按下和弹出,则实现导航控制器的委托 navigationController:animationControllerForOperation:fromViewController:toViewController:navigationController:interactionControllerForAnimationController: 并从那里开始。

您还可以通过创建它的 2 个实例来使用 UISwipeGestureRecognizer。 每个方向一个。

    var swipeLeft : UISwipeGestureRecognizer = UISwipeGestureRecognizer(target: self, action: "swipe:")
    swipeLeft.direction = UISwipeGestureRecognizerDirection.Left

    var swipeRight : UISwipeGestureRecognizer = UISwipeGestureRecognizer(target: self, action: "swipe:")
    swipeRight.direction = UISwipeGestureRecognizerDirection.Right

    self.view.addGestureRecognizer(swipeLeft)
    self.view.addGestureRecognizer(swipeRight)

和滑动功能

func swipe(sender: UISwipeGestureRecognizer) {

    switch sender.direction {
    case UISwipeGestureRecognizerDirection.Right:
        print("SWIPED DERECHA")
        self.performSegueWithIdentifier("first", sender: nil)
    case UISwipeGestureRecognizerDirection.Left:
        print("SWIPED IZQUIERDA")
        self.performSegueWithIdentifier("second", sender: nil)
    default:
        break
    }
}