Ios Swift UIPageViewController禁用第一个和最后一个控制器的ScrollView反弹属性(似乎有问题)
我有一个类,它是UIPageViewController的子类,包含4个视图控制器 我试图弄明白为什么在我试图停止UIPageViewController上第一个和最后一个控制器上的反弹效果时,下面的代码会随机停止UIPageViewController的滚动 如果您跟踪您的currentIndex,那么下面的内容应该足够了,但有点问题,因为有一个随机场景,它会完全停止滚动,并卡在随机视图控制器上 我认为scrollView.bounces有点问题,也许我遗漏了一些东西,因为大多数时候它工作正常,如果有人能够基于下面的解决方案,那就太好了Ios Swift UIPageViewController禁用第一个和最后一个控制器的ScrollView反弹属性(似乎有问题),ios,swift,swift3,uiscrollview,uipageviewcontroller,Ios,Swift,Swift3,Uiscrollview,Uipageviewcontroller,我有一个类,它是UIPageViewController的子类,包含4个视图控制器 我试图弄明白为什么在我试图停止UIPageViewController上第一个和最后一个控制器上的反弹效果时,下面的代码会随机停止UIPageViewController的滚动 如果您跟踪您的currentIndex,那么下面的内容应该足够了,但有点问题,因为有一个随机场景,它会完全停止滚动,并卡在随机视图控制器上 我认为scrollView.bounces有点问题,也许我遗漏了一些东西,因为大多数时候它工作正常
public func scrollViewDidScroll(_ scrollView: UIScrollView) {
scrollView.bounces = currentIndex == 0 ||
currentIndex == controllers.count - 1
? false
: true
}
我设法解决了这个问题,但我的问题是试图找出如何滚动到下一个控制器的一半
一些快速搜索似乎表明,由于
UIPageViewController
的固有行为,尝试禁用反弹可能会出现问题。您需要显示多少“页面”?如果不是很多,你最好使用一个标准的滚动视图。嗨,谢谢你的回复,我试了很多次才让它正常工作。我现在遇到的另一个有点棘手的问题在这里解释了它的4个视图控制器,我现在正试图找出如何检测滚动到每个控制器的一半。听起来你试图覆盖UIPageViewController
的默认行为是一场失败的战斗,特别是当与其他问题。因为您只有4个“页面”,所以将它们嵌入到标准的UIScrollView
。。。而且可能更可靠。谢谢,我知道你的意思,但正如前面提到的,我现在有一个可靠的解决方案来解决这个问题,禁用滚动视图的反弹。我被另一个问题困住了,但我想我已经很接近了。如果我的另一个问题中的另一个问题得到解决,它将节省大量的工作,并且与使用StackView构建自定义ScrollView相比,它将是一个更干净的解决方案。如果有人能帮忙的话,一定有办法(我希望)那会很好。