1

想象一下将UITableView放入UIScrollView的情况。如果您点击表格视图并开始垂直移动 - UITableView将成为第一响应者并将垂直滚动。但是,如果您将手指水平移动 - UIScrollView将成为第一响应者并将水平滚动。

我有类似的情况,但不是 UIScrollView 我有简单的 UIView 对象拦截 - (void)touchesMoved:事件并进行移动(有点自制 ScrollView)。

但是我怎么能做与UIScrollView相同的技巧- 确定水平移动并从UITableView中删除第一响应者状态???

提前致谢!!!

4

2 回答 2

0

您是否尝试过在视图上投掷 UIPanGestureRecodnizer。然后,您应该能够设置一个@selector,它允许您处理相关事件。同样使用 pan 您可以选择仅更改 x 元素而单独保留 y 元素。此外,通过附加到视图的平移元素,您不必担心有第一响应者。如果您有加速和/或减速,平移元素可以在很多时候用作滑动元素。除此之外,我想说您还可以左右添加一个 UISwipeGestureRecognizer 元素,但我认为您不会获得诸如用户滑动多远含义之类的信息,如果您希望屏幕在用户还没有足够远时快速返回右或左,那么您将没有该选项。还,swipe 不会产生与 UIScrollView 相同的效果,但 UIPanGestureRecognizer 可以,如果你做一些额外的编码。额外的代码是观察 x 值的位置,然后在用户放开视图时使用一点动画让视图向右或向左对齐。除此之外,如果您正确设置 x,视图应该并且将跟随手指。

于 2012-04-13T14:00:31.220 回答
0

您可以尝试canBecomeFirstResponder在视图中覆盖并在适当的时间返回适当的值。

于 2011-03-02T17:37:03.357 回答