想要那个 .scroll 动画,即使没有在 UIPageViewController 中设置数据源

Want to have that .scroll animation, even when the datasource is not set in UIPageViewController

我有一个显示五个 ViewControllersUIPageViewController(包含在 ViewControllers 的数组中)。我正在使用手势识别器在 backward/forward 方向移动页面,而不是 viewControllerBefore/viewControllerAfter 方法。它工作正常,但页面突然改变。我想让动画类似于我以前应用 .scroll 时的动画。 我希望能够显示两个ViewControllers,类似于我们在.scroll动画中缓慢滑动时的体验。 你能建议怎么做吗? 谢谢。

正如我在这个问题中提到的那样,我遇到了滚动问题 -> [Disable swiping in horizontal UICollectionView inside my PageViewController to swipe in UIPageViewController 所以,我决定评论这一行 -> self.dataSource = self 我决定明确提供与手势相关的功能。

@objc func handleSwipe(gesture: UISwipeGestureRecognizer) {
    print(gesture.direction)
    switch gesture.direction {
    case UISwipeGestureRecognizer.Direction.down:
        print("down swipe")
    case UISwipeGestureRecognizer.Direction.up:
        print("up swipe")
    case UISwipeGestureRecognizer.Direction.left:

        self.setViewControllers([ViewControllerArray[1]], direction: .forward, animated: false, completion: nil)

    case UISwipeGestureRecognizer.Direction.right:

        self.setViewControllers([ViewControllerArray[2]], direction: .forward, animated: false, completion: nil)

    default:
        print("other swipe")
    }
}

animated 参数更改为 true

@objc func handleSwipe(gesture: UISwipeGestureRecognizer) {
    print(gesture.direction)
    switch gesture.direction {
    case UISwipeGestureRecognizer.Direction.down:
        print("down swipe")
    case UISwipeGestureRecognizer.Direction.up:
        print("up swipe")
    case UISwipeGestureRecognizer.Direction.left:

        self.setViewControllers([ViewControllerArray[1]], direction: .forward, animated: true, completion: nil)

    case UISwipeGestureRecognizer.Direction.right:

        self.setViewControllers([ViewControllerArray[2]], direction: .forward, animated: true, completion: nil)

    default:
        print("other swipe")
    }
}