想要那个 .scroll 动画,即使数据源没有在 UIPageViewController 中设置
Posted
技术标签:
【中文标题】想要那个 .scroll 动画,即使数据源没有在 UIPageViewController 中设置【英文标题】:Want to have that .scroll animation, even when the datasource is not set in UIPageViewController 【发布时间】:2019-09-03 08:09:08 【问题描述】:我有一个UIPageViewController
,它显示五个ViewControllers
(包含在ViewControllers
的数组中)。我正在使用手势识别器来向后/向前移动页面,而不是 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: false
?
@Erumaru 天哪!我这边真是个愚蠢的错误!非常感谢您为我指出这一点:)
我很高兴知道这有帮助,我已经添加了答案。
【参考方案1】:
将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")
【讨论】:
以上是关于想要那个 .scroll 动画,即使数据源没有在 UIPageViewController 中设置的主要内容,如果未能解决你的问题,请参考以下文章
仅在用户滚动时调用 Scroll,而不是在 animate()
使 $(window).scroll() 上的 animate() 平滑