UIVcrollView里面的UIView,UIView手势单行

时间:2013-02-28 11:44:11

标签: iphone ios

UIScrollView内有UIView。对于自定义分页目的,我已将此UIScrollView的裁剪设置为否,以便UIScrollView仍显示在UIView的区域A和区域B中。

  

[区域A [UIScrollView]区域B]

现在我希望Region AB能够在触摸时触发UIScrollView's的滚动事件。我记得有一个衬垫(类似于[X addGestureRecognizer ...])可以解决这个问题但是我已经忘记它是什么......如果有人能告诉我那是什么,那将是很棒的!

2 个答案:

答案 0 :(得分:1)

这不会让您对滚动进行流畅控制,就像您从UIScrollView获得的一样。

但是,您可以使用以下代码:

UISwipeGestureRecognizer *leftSwipeGestureRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(viewSwiped:)];
[leftSwipeGestureRecognizer setDirection:UISwipeGestureRecognizerDirectionLeft];
[self.view addGestureRecognizer:leftSwipeGestureRecognizer];
[leftSwipeGestureRecognizer release];

UISwipeGestureRecognizer *rightSwipeGestureRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(viewSwiped:)];
[rightSwipeGestureRecognizer setDirection:UISwipeGestureRecognizerDirectionRight];
[self.view addGestureRecognizer:rightSwipeGestureRecognizer];
[rightSwipeGestureRecognizer release];

解雇此方法:

- (void)viewSwiped:(UISwipeGestureRecognizer *)swipeGestureRecognizer {
    switch (swipeGestureRecognizer.direction) {
        case UISwipeGestureRecognizerDirectionLeft:
            // Make your scroll view scroll
            break;
        case UISwipeGestureRecognizerDirectionRight:
            // Make your scroll view scroll
            break;
        default:
            // Do Nothing
            break;
    }
}

它将允许您检索滑动手势并相应地分页UIScrollView

其他两种解决方案可能更好:

  1. 您可以像上面一样使用UIPanGestureRecognizer。它识别真正的平移手势,而不仅仅是离散滑动,但手指和UIScrollView之间同步的实现会稍微复杂一些。
  2. 您可以让UIScrollView获取UIView的总宽度并自行管理分页,重新计算您的步骤,同时通过{{1}跟踪UIScrollView的当前状态}。再一次,有点难。
  3. 希望这会有所帮助,

答案 1 :(得分:1)

如果您想将UIScrollView的滚动手势重定向到另一个视图,可以执行以下操作:

[paddingView addGestureRecognizer:scrollView.panGestureRecognizer];