문제

내 뷰 컨트롤러가 내 앱에서 자동으로 표시되는 Uinavigationbar에서 스 와이프를 감지하도록하려고하지만 스 와이프를 감지하는 것을 거부합니다. 내가 할 수있는 방법이 있습니까?

도움이 되었습니까?

해결책

탐색 표시 줄에서 왼쪽으로 스 와이프를 감지하고 싶다고 가정하면 이와 같은 작업을 수행 할 수 있습니다. 내비게이션 컨트롤러를 만들 때:

   UISwipeGestureRecognizer *swipeLeft = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(scrollViewSwipedLeft:)];
   [swipeLeft setDirection:UISwipeGestureRecognizerDirectionLeft];
   [self.navigationController.navigationBar addGestureRecognizer:swipeLeft];

그런 다음 아래의 방법과 같은 방법을 작성하십시오.

-(void) didSwipedLeft: (UISwipeGestureRecognizer *) gesture {

  if (gesture.state != UIGestureRecognizerStateEnded) {
      return;
  }

  //do something    
}

OBS : Navigation Controller는 응용 프로그램 수명주기의 여러 단계에 대해 살아있는 클래스이므로 내비게이션 컨트롤러를 만들 때만 이에주의를 기울이고 제스처 인식기를 추가하는 것이 중요합니다 (한 번만 추가 함). 당신이 서로를 쌓아 두는 제스처 인식기를 서로 유지하지 않도록, Wich는 메모리 누출로 이어질뿐만 아니라 방법을 만들 수 있습니다. didSwipedLeft 두 번 이상 부름.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top