2016-12-22 4 views
1

목록에 많은 사용자를 표시하는 UITableView가 있습니다. 이전 View Controller의 간단한 Push Segue를 통해로드 할 수 있습니다. ScreenEdgePanGesture를 Swipe to go back으로 사용하려고하면 드래그하는 동안 멈추고 위아래로 이동하여 TableView가 스크롤되도록하는 이상한 문제에 직면하고 있습니다. 내가 설명하는 상태를 보여주는 이미지를 업로드했습니다. 이 시점에서 좌우로 이동하여 Swipe to go back 제스처를 수행 할 수 있지만 위 아래로 이동하고 표를 스크롤 할 수도 있습니다.화면 가장자리 팬 제스처 + 테이블보기 동시에 스크롤하기

화면을 끌기 위해 끌 때 TableView 스크롤을 비활성화하고 싶습니다.

enter image description here

나는 여러 제스처 recognisers을 해제하는 코드를 추가하려했지만, 그 효과가 없습니다 것 같았다.

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer 
{ 
    return NO; 
} 

이 동작을 사용하지 않도록 설정할 수있는 방법이 있습니까? 드래그 동작이 시작되면 TableView가 잠겨있는 다른 화면에서 원하는 동작을 관찰했다는 것을 말씀 드리고 싶습니다. 불행히도, 스토리 보드에서 수업이나 배치의 차이점을 분별할 수 없었습니다. 주변에있는 질문을보고, 나는 올바른 및 기본 동작이 내가 원하는 것으로 나타났습니다. 그러나 위에 게시 된 화면은 정상적인 것으로 보이는 것과 다르게 동작합니다. 나는 그것에 대해 어떠한 특징도 발견 할 수 없다.

잘못된 TableView 설정에 대한 추가 정보. 어쩌면 누군가가 뭔가 잘못 알아낼 수 있습니다. http://imgur.com/a/uoRB7

http://imgur.com/a/ajF59

제가 상기 문제를 표시하는 별도의 동영상을 추가. 이것이 더 이해되기를 바랍니다 : https://vid.me/Tp34

많은 감사!

+0

내 앱에서 이것을 복제 할 수 없습니다. 샘플을 제공해 줄 수 있습니까? –

+0

큰 응용 프로그램에 통합 된 작은 구성 요소이기 때문에 샘플을 제공 할 수 없습니다. 그러나, 당신이 기꺼이한다면, 나는 당신에게 세부 사항을 줄 수 있으므로, 당신이 가서 iTunesConnect에서 그것을 다운로드 할 수 있으며, 내가 말하는 화면에 도달하는 방법을 안내 할 수 있습니다. –

+0

그러나 여전히 데모 프로젝트에서이 문제를 재현하려고 할 수 있습니다. –

답변

0

나는 마침내이 문제에 대한 해결책을 찾을 수있었습니다.

추가 ScreenEdgePanRecognizer을 내보기로 :

self.panRecognizer = [[UIScreenEdgePanGestureRecognizer alloc] initWithTarget:self action:@selector(didPan)]; 
[self.panRecognizer setEdges:UIRectEdgeLeft]; 
[self.view addGestureRecognizer:self.panRecognizer]; 
나는 동작을 일으키는하지만 경우 중 하나가 여전히 고민 무엇 확실하지 않다, 이것은 내가 스크롤에서의 TableView를 사용하지 않도록 한 것입니다 이 이제 스크롤 중반 제스처를 비활성화

- (void)didPan { 
    self.tableView.scrollEnabled = NO; 
    if ([self.panRecognizer state] == UIGestureRecognizerStateEnded) { 
     self.tableView.scrollEnabled = YES; 
    } 
} 

:

그런 다음, 당신이 끌어 시작하자마자 스크롤을 비활성화하는 방법을 추가하고-이 가능 재은 곧 당신이 당신의 제스처 완료 같다 드래그를 끝내면 복원됩니다.