2012-07-07 3 views
2

은 내가 팝업보기를 해제 한 후, 난 다시 슬쩍 제스처를 설정해야하는 제스처를새보기를로드 할 때 UISwipeGestureRecognizer를 비활성화하는 방법? 나는 팝업을 통해 새로운 뷰를로드 할 때 내있는 viewDidLoad에서

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

을 중지해야

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

을 설정합니다.

// 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; 
    } 
} 

를 추가

관련 문제