2012-08-23 6 views
0

내 응용 프로그램에서 MFSideMenu를 사용하며 탐색 모음의 팬 제스처 만 사용하여 메뉴를 표시 할 수 있습니다. 페이스 북 앱과 같이 전체 화면에서 작업하고 싶습니다. 이것에MFSideMenu 전체 크기 팬 제스처

내가 (MFSideMenuManager.m에서 l.39)이 줄을 변경 시도했습니다

[controller.navigationBar addGestureRecognizer:recognizer]; 

:

[controller.view addGestureRecognizer:recognizer]; 

하지만 그냥 작동하지 않습니다.

작동을 위해 내가 편집해야 할 사항이 있습니까?

내가 MFSideMenuManager을 모르는

답변

3

마지막으로 작동시키는 데 성공했습니다. 제스처는 실제로 구현되었지만 메뉴가 숨겨져있는 경우에만 작동합니다. 우리는 MFSideMenuManager.m gestureRecognizerShouldBegin에서

에서 편집 할 수있는 두 줄이 있습니다

이 두 가지를 작동하는지 확인하기 위해이 조건을 제거 할 수 있습니다 방법은

if([gestureRecognizer isKindOfClass:[UIPanGestureRecognizer class]]) { 
     if([gestureRecognizer.view isEqual:self.navigationController.view] && 
      self.navigationController.menuState != MFSideMenuStateHidden) return YES; 

if([gestureRecognizer isKindOfClass:[UIPanGestureRecognizer class]]) { 
     if([gestureRecognizer.view isEqual:self.navigationController.view]) return YES; 
된다

navigationControllerPanned : 메소드에서 if 행을 제거하십시오.

- (void) navigationControllerPanned:(id)sender { 
    if(self.navigationController.menuState == MFSideMenuStateHidden) return; 

    [self handleNavigationBarPan:sender]; 
} 

- (void) navigationControllerPanned:(id)sender { 
    [self handleNavigationBarPan:sender]; 
} 

된다 그리고 그것은 작동한다!

라이브러리를 편집하는 것은 좋은 습관은 아니지만 MFSideMenu에 부울 옵션을 추가하여 구성 가능하게 만들려면 쉽게 수행 할 수 있습니다.

0

도와 주셔서 감사하지만 줄을 드래그 할 경우 나는

[self.navigationController.navigationBar addGestureRecognizer:gestureRecognizer]; 

은 그래서 당신이 할 것은 교체하는 라인으로 UIPanGestureRecognizer있을 것으로 예상

[self.navigationController.view addGestureRecognizer:gestureRecognizer]; 
+0

그게 내가 전에 시도한거야,하지만 불행히도 그것은 작동하지 않았다. 어쨌든 고마워 –