我看到过类似的问题,但是其他答案都不适用于我的情况。我有一个UIPageViewController,其中包含一个包含UISlider的子视图控制器。
当您尝试移动滑块时,它会激活页面视图控制器的滚动。您必须点击、暂停在滑块圆圈上,然后移动。
UIPageViewController设置为滚动类型,因此手势识别器未设置(标题状态为“仅在转换样式为'UIPageViewControllerTransitionStylePageCurl'时填充”)。因此,我甚至无法正确访问手势。
我已经尝试了几种方法来防止UIPageViewController影响滑块,但都没有成功。我尝试过: 1)遍历子树并将UIScrollView的pan手势委托设置为自己(这会导致崩溃) 2)在上面添加自己的手势,并检查y值。这将防止滑动,但它也会吃掉点击和移动,所以滑块实际上不会按预期更改 3)实现具有自定义手势的自定义滑块。问题是我无法像默认值一样匹配pan手势更改滑块。由于您必须自己实现pan并调整位置,因此很难匹配真正的行为。
这些方法都对我无效。有人能够解决这个问题吗?我能想到的唯一解决方案是完全防止滚动,添加左/右按钮,并根据需要编程转换页面。
当您尝试移动滑块时,它会激活页面视图控制器的滚动。您必须点击、暂停在滑块圆圈上,然后移动。
UIPageViewController设置为滚动类型,因此手势识别器未设置(标题状态为“仅在转换样式为'UIPageViewControllerTransitionStylePageCurl'时填充”)。因此,我甚至无法正确访问手势。
我已经尝试了几种方法来防止UIPageViewController影响滑块,但都没有成功。我尝试过: 1)遍历子树并将UIScrollView的pan手势委托设置为自己(这会导致崩溃) 2)在上面添加自己的手势,并检查y值。这将防止滑动,但它也会吃掉点击和移动,所以滑块实际上不会按预期更改 3)实现具有自定义手势的自定义滑块。问题是我无法像默认值一样匹配pan手势更改滑块。由于您必须自己实现pan并调整位置,因此很难匹配真正的行为。
这些方法都对我无效。有人能够解决这个问题吗?我能想到的唯一解决方案是完全防止滚动,添加左/右按钮,并根据需要编程转换页面。