2012-07-07 28 views
2

在我viewDidLoad中我設置如何在加載新視圖時禁用UISwipeGestureRecognizer?

UISwipeGestureRecognizer *swipeRecognizerU = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeUpDetected:)]; swipeRecognizerU.direction = UISwipeGestureRecognizerDirectionUp; [self.view addGestureRecognizer:swipeRecognizerU]; 

,當我通過彈出加載一個新的觀點,我需要禁用手勢

// show popup view 
-(IBAction)showPopup:(id)sender 
{ 
    MJDetailViewController *detailViewController = [[MJDetailViewController alloc] initWithNibName:@"MJDetailViewController" bundle:nil]; 
    [self presentPopupViewController:detailViewController animationType:MJPopupViewAnimationSlideBottomBottom]; 
} 

彈出視圖駁回後,我需要設置滑動手勢回來。

// hide popup view 
-(IBAction)hidePopup:(id)sender 
{ 
    [self dismissPopupViewControllerWithanimationType:MJPopupViewAnimationSlideBottomBottom]; 
} 

這可怎麼辦?

回答

6

我認爲有屬性命名爲啓用UIGestureRecognizer。你有沒有嘗試過,應該可以禁用你的滑動:

swipeGestureRecognizer.enabled = NO; 
1

你需要在這裏設置代表。

例:

swipeleft=[[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(swipeleft:)]; 
     swipeleft.direction=UISwipeGestureRecognizerDirectionLeft; 
     swipeleft.delegate = self; 
     [self.view addGestureRecognizer:swipeleft]; 

然後添加功能

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch { 


    if ((touch.view == test[1]) || (touch.view == test[2]) || (touch.view == test[3])) { 

     [gestureRecognizer setCancelsTouchesInView:YES]; 
     [swipeleft setCancelsTouchesInView:YES]; 

     [gestureRecognizer setEnabled:NO]; 
     [swipeleft setEnabled:NO]; 



     return NO; 

    } 
    else 
    { 
     [gestureRecognizer setCancelsTouchesInView:NO]; 
     [swipeleft setCancelsTouchesInView:NO]; 

     [gestureRecognizer setEnabled:YES]; 
     [swipeleft setEnabled:YES]; 

    return YES; 
    } 
} 

我想對你

有用
相關問題