有趣的重叠UIScrollView难题

时间:2013-01-30 17:03:38

标签: ios uiscrollview touch logic

假设您有两个滚动视图,一个垂直和一个水平,以“加号”模式相交。假设您在加号的中心有一个对象(例如UIImageView)。如果触摸对象并向上滚动,则希望对象在垂直滚动视图中向上滚动。但是如果你触摸对象并向侧面滚动,你希望它在水平滚动视图中滚动。

问题:

  1. 最初的对象是哪个scrollview?或者它既不是?在检测到滚动视图开始滚动之前,您不知道对象所在的滚动视图。

  2. 如果垂直滚动视图位于顶部,则水平滚动视图将不会在滚动视图重叠的中心区域中接收到触摸。

  3. 任何人都可以想到这个问题的任何解决方案吗? (改变设计不是解决方案)

    另一种思考方式是:你有一块100x100的瓷砖网格,但你一次只能在屏幕上看到一个10x10的网格。您希望能够横向滚动每一行,但您还希望能够垂直滚动每一列。显然,在每次新的触摸/滚动开始之前,滚动位置必须锁定到最接近的块大小的倍数。但这意味着在任何给定时间任何图块都可以是水平或垂直滚动​​视图。

1 个答案:

答案 0 :(得分:0)

使用(单个)滚动视图(使用directionLockEnabled = YES)作为其物理,但实际上并不使其成为瓷砖的超级视图。

有关此技术的更多信息,请参阅WWDC2012视频“使用滚动视图增强用户体验”。