我希望能够创建一个手势识别器,监听屏幕上的双指滑动手势。
目前我在子视图中有一个UITableView,当然会滚动,但似乎无法识别我在视图上设置的UIGestureRecognizer。当您使用两个手指时,它只会滚动...
是否有办法使整个视图(或者可能是父视图)都可以监听双指触摸,并在识别到后执行我想要的操作,而不是滚动表格视图? 编辑:这是我的代码,但这应该是一个非常普遍的问题。我只想在整个视图上拥有UIGestureRecognizers。
目前我在子视图中有一个UITableView,当然会滚动,但似乎无法识别我在视图上设置的UIGestureRecognizer。当您使用两个手指时,它只会滚动...
是否有办法使整个视图(或者可能是父视图)都可以监听双指触摸,并在识别到后执行我想要的操作,而不是滚动表格视图? 编辑:这是我的代码,但这应该是一个非常普遍的问题。我只想在整个视图上拥有UIGestureRecognizers。
navBarTitle.title = @"Crunch";
//opening the menuView from launch
//setup the customtable view as a subview in menuView
SDMenuViewController *mvc = [[[SDMenuViewController alloc] initWithNibName:@"SDNestedTableView" bundle:nil] autorelease];
[self addChildViewController:mvc];
[mvc didMoveToParentViewController:self];
[menuView addSubview:mvc.view];
[mvc.view setFrame:CGRectMake(mvc.view.frame.origin.x, mvc.view.frame.origin.y, mvc.view.frame.size.width, mvc.view.frame.size.height + 44)]; //add navBarHeight, for some strage reason
//add swipe down gesture on for the menu
UISwipeGestureRecognizer *swipeClose =[[[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(closeMenu)] autorelease];
swipeClose.numberOfTouchesRequired = 2;
swipeClose.direction = UISwipeGestureRecognizerDirectionUp;
UISwipeGestureRecognizer *swipeOpen = [[[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(openMenu)] autorelease];
swipeOpen.numberOfTouchesRequired = 2;
swipeOpen.direction = UISwipeGestureRecognizerDirectionDown;
for (UIGestureRecognizer* rec in menuView.gestureRecognizers) {
[rec requireGestureRecognizerToFail:swipeClose];
[rec requireGestureRecognizerToFail:swipeOpen];
}
for (UIGestureRecognizer* rec in mvc.view.gestureRecognizers) {
[rec requireGestureRecognizerToFail:swipeClose];
[rec requireGestureRecognizerToFail:swipeOpen];
}
[mvc.view addGestureRecognizer:swipeClose];
[mvc.view addGestureRecognizer:swipeOpen];
[self.view addGestureRecognizer:swipeClose];
[self.view addGestureRecognizer:swipeOpen];
pan
而不是swipe
,甚至是UIView
的触摸方法检测方法,例如touchesBegan
等。 - Ezeki