【发布时间】:2013-09-30 10:13:41
【问题描述】:
滚动视图的工作原理如下: 一个滚动视图在水平方向启用分页。此滚动视图的每个“页面”都包含一个垂直滚动的 UITableView。如果不进行修改,这可以正常工作,但并不完美。
不正确的行为:当用户在表格视图上上下滚动,但又想快速翻到下一页时,水平滑动/滑动最初不起作用 -在表格视图静止之前它不会起作用(即使滑动非常明显是水平的)。
它应该如何工作:如果滑动明显是水平的,我希望页面改变,即使表格视图仍在滚动/弹跳,因为这也是用户所期望的.
我怎样才能改变这种行为 - 最简单或最好的方法是什么?
注意 由于各种原因,某些答案中所述的 UIPageViewController 将不起作用。我如何使用交叉方向 UIScrollViews 来做到这一点(/one 是一个表格视图,但你明白了)?我已经用头撞墙了好几个小时了——如果你认为你能做到这一点,那么我会很乐意奖励赏金。
【问题讨论】:
-
您的最低 iOS 目标是多少?如果 iOS 6.0+,不使用
UIScrollView,您是否考虑过在此处使用UIPageViewController? -
(从技术上讲,您可以在 iOS 5.0+ 中使用
UIPageViewController,但我相信UIPageViewControllerTransitionStyleScroll仅适用于 iOS 6.0+) -
@JRG-Developer 我最初确实考虑过 UIPageViewController,但有几个原因它对我不起作用。我需要访问滚动视图的“scrollViewDidScroll:”方法,该方法不适用于页面视图。
-
你想通过
scrollViewDidScroll:方法完成什么?也就是说UIPageViewControllerDelegate上有类似的委托方法,比如pageViewController:willTransitionToViewControllers:和pageViewController:didFinishAnimating:transitionCompleted:,可以让你知道发生了水平滚动事件。 -
@JRG-开发类似水平视差的视图效果 - UIPageViewController 委托中的方法在滚动发生时不提供跟踪信息,仅在之后提供。
标签: ios objective-c uitableview uiscrollview