1

我有一个长的、水平的、窄UIScrollView的并排包含几个按钮。当用户垂直拖动按钮时,会触发特定方法(通过 a UIPanGestureRecognizer),并且滚动视图不会滚动(即使他/她的拖动开始向左或向右)。这一切都很好。

当用户在滚动视图上的任意位置水平拖动时,包括直接在按钮上,UIPanGestureRecognizer忽略效果并且滚动视图应该滚动。这是我遇到问题的最后一个效果:当用户直接在按钮上水平拖动时,滚动视图不会滚动。我怎样才能“通过”那个水平手势到滚动视图?

谢谢阅读!

4

3 回答 3

1

在 UIScrollView 你可以覆盖

- (BOOL)touchesShouldCancelInContentView:(UIView *)view

子类 UIScrollView(或 UITableView)并返回YES. 滚动开始时,它将取消来自子视图的任何触摸。

于 2014-07-02T11:05:24.920 回答
1

将此方法添加到按钮的 UIPanGestureRecognizer 的委托中:

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
    return (otherGestureRecognizer == _scrollView.panGestureRecognizer);
}
于 2013-11-08T11:49:52.550 回答
0

考虑一下 UILongPressGestureRecognizer。这可能会对您有所帮助:将长按手势和拖动手势结合在一起

于 2013-11-07T12:32:55.893 回答