3

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

问题:

  1. 对象最初在哪个滚动视图中?还是两者都没有?在检测到哪个滚动视图开始滚动之前,您不知道对象在哪个滚动视图中。

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

谁能想到这个问题的任何解决方案?(改变设计不是解决方案)

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

4

1 回答 1

0

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

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

于 2013-10-10T08:16:50.120 回答