2

나는 자연스럽게 스스로 스크롤하려고하는 UITableView을 가지고 있습니다. 그러나 나는 그것에 붙어있는 제 자신의 제스처 인식기도 simulataneously (gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:에서 반환을 통해) 인식됩니다.다른 사람이 발포하는 동안 제스처 인식기를 일시적으로 사용하지 않도록 설정합니다.

내 제스처 핸들러에서 계산 한 특정 포인트 이후에 자신의 기본 제스처의 제스처 변경을 처리하는 테이블 뷰를 일시적으로 중지하려고합니다. 이는이 시점에서 테이블 뷰의 크기를 조정하고 있기 때문에 발생합니다 (그러나 크기 조정이 적용되기 시작한 위치로 계속 스크롤됩니다).

다른 제스처 인식기를 gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:에 기록하려고 시도했습니다. 올바른 제스처 인식기가 UIScrollViewPanGestureRecognizer 인 것으로 나타났습니다. 그러나 내 처리기 안에있는 인식기에 아무런 영향을 미치지 않는 것 같습니다.

otherRecognizer.enabled = NO 설정은 트릭을 수행해야한다고 생각하지만 효과가 없습니다.

테이블보기가 내 앞에 제스처 이벤트를 수신하고 있으므로 그 시점에서 해당 이벤트를 비활성화해도 아무 효과가 없지만 다음 변경 이벤트에서 비활성화 될 것이라고 생각할 수도 있습니다. .

내가 곤혹 스럽다. 제스처를 완전히 취소하지 않고 표보기에서 수신/처리 제스처를 일시적으로 차단하려면 어떻게합니까?

업데이트 :

내가 otherRecognizer를 기록 할 때의 상태가 Failed, 그것은 입력 UIScrollViewPanGestureRecognizer의 개체로 나타납니다. 또한 실제로 많은 전화가 gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer: (심지어 복수 유형 인 UIScrollViewPanGestureRecognizer)에 있다는 것을 알 수 있습니다. 따라서 아마도 잘못된 것을 기록하고 비활성화하는 것일 수 있습니다 ... 그러나 내가 원하는 것은 무엇인지 어떻게 알 수 있습니까?

업데이트 2 : 난 내 자신의 제스처 핸들러 내부에 적절한 순간에 tableView.panGestureRecognizer.enabled = NO을 설정하면

, 내가 크기를 조정하기 시작하면 절반 방법이-테이블 더 이상 스크롤을 나야 얻을. 그러나 다시 활성화 된 상태로 설정하면 제스처가 다시 ​​활성화되지 않고 새 제스처가 시작될 때까지 더 이상 스크롤을 처리하지 않습니다.

업데이트 3 :

나는이 수동으로 동작하는 동안 오프셋 스크롤 뷰의 내용을 조정하여 "해결"결국. 그것은 잘 작동하는 것,하지만 난 아직도 진짜 대답에 대한 호기심이야.

답변

1

UITableView는 UIScrollView입니다. UIScrollView에는 panGestureRecognizer 속성이 있습니다. 그것은 사용자가 테이블보기에서 손가락을 움직이는 것에 응답하는 제스처 인식기입니다.

그러나 테이블 뷰의 크기를 조정할 때 스크롤 위치가 변경되는 것과는 아무런 관련이 없습니다. 사용자는 아무 것도하지 않습니다. 따라서 제스처가없고 인식 할 것도 없습니다. 스크롤보기가 수행중인 작업을 제어하려면 을 직접 제어해야합니다.. UITableView 메서드, UIScrollView 메서드 및 UIScrollView 대리자를 사용할 수 있습니다.

더 명확한 문제 설명이 없으면 더 자세히 설명하기가 어렵지만, 에 대한 대답은에게 묻습니다. 잘못된 트리를 짖고있는 것입니다. 그러나 아마도 그렇지 않다. 아마도 입니다. 테이블보기의 크기를 조정하려고 몸짓을하고 있는데,이 질문에서 분명히하지 않았습니까? 이 경우 panGestureRecognizer을 사용 중지 해보세요. 또는 테이블보기에 대한 모든 사용자 상호 작용을 일시적으로 해제하고 다른 곳에서이 제스처를 감지하는 것이 더 좋습니다.

+0

내 몸짓 조정기에서 수동으로 조정하는 크기 조정. 기본적으로 사용자가 테이블 뷰를 스크롤하면 테이블 뷰의 크기가 조정됩니다. 그러나 문제는 그것이 크기를 조정하는 동안 * 스크롤을 계속한다는 것입니다. 테이블 뷰가 창의 아래쪽에 있고 위쪽으로 크기가 조정되기 때문에 테이블이 더 이상 손가락을 따라가는 것처럼 보이지 않고 두 번 스크롤해야합니다. – devios1

+0

테이블 뷰의'panGestureRecognizer' 속성은 올바른 방향으로 나아가는 단계입니다 - 감사합니다! 내 업데이트 2를 참조하십시오. – devios1

관련 문제