2013-04-29 2 views
2

UIScrollView 스크롤을 한 방향으로 스크롤하려고했지만 여전히 모든 UITouch 이벤트가 발생했습니다. 나는 이것이 가능하다는 것을 완전히 확신하지 못한다.UIScrollView : 허용되는 경우에만 스크롤

UIResponder의 "접촉"이벤트를 무시하려고 시도했지만 UIScrollView이 스크롤되기 시작하면 touches 메소드가 호출되는 것을 멈 춥니 다.

는 그때 나는 UIScrollView 드래그 이벤트를 받기 시작 할 때까지 false로 UIScrollViewscrollEnabled 속성을 설정했지만, 나는 터치 이벤트의 중간 드래그의 수신을 개시하도록 UIScrollView을 할 수있는 방법을 찾을 수 없습니다. 가능합니까?

나의 다음 시도가 스크롤 뷰에 "패딩"를 추가하고 contentOffset 속성 장난으로 내 자신의 "터치 이벤트"를 만드는,하지만 미친 듯이 과도한 시간의 양 및 처리 scrollViewDidScroll:를 부르기 시작했다 -도 응답의 타당성에 대한 몇 가지 문제.

hitTest:withEvent:, pointInside:withEvent:, touchesShouldBegin:withEvent:inContentView:touchesShouldCancelInContentView:으로 성공을 거두었습니다.

나는 다른 몇 가지 시도를 해봤지만 아무도 작동하지 않았습니다. 또한 찾은 것으로부터 delaysContentTouches을 false로 설정하면 스크롤 응답이 파괴됩니다.

나는 실제에 겹쳐 쓰는 방식을 선호합니다. 수퍼를 호출하지 않으면 UIScrollView이 접촉을받지 않는 메소드입니다. UIResponder "터치"이벤트가 스크롤이 시작 되 자마자 내려부터

가 나는 UIScrollView의 스크롤에 영향을주지 않고, UITouch 말이지 (드래그가, 출시를 시작하고, 취소 다만 도청되지 않음) 얻을 수있는 방법이 필요합니다 . 이것이 가능한가?

답변

1

그냥 touches 일반적인 감지 할 경우, viewUITapGestureRecognizer 같은 gesture recognizers를 부착하려고, 그들은 UIScrollView로도 작동합니다.

touches을 감지하고 scrollview에 나머지를 전달하는 상단에 투명 UIView을 배치 할 수도 있습니다.

+0

터치를 중간 드래그하여 전달하면 스크롤보기를 스크롤 할 수 없습니다. 또한, 나는 도청을 찾고있는 것이 아니라, 모든 사건 (특히 끌기)을 만지는 것입니다. – RileyE

+1

그런 다음 원하는 이벤트를 포착하는 사용자 지정 제스처 인식기를 만들어보십시오. 참조 : http://developer.apple.com/library/ios/#documentation/uikit/reference/UIGestureRecognizer_Class/Reference/Reference.html#//apple_ref/occ/cl/UIGestureRecognizer – txulu

+0

그리고 유용 할 수 있습니다. http : //iphonedevsdk.com/forum/iphone-sdk-tutorials/9213-detect-touch-in-scrollview-tutorial.html – txulu

0

스크롤을 시작하면 오프셋 복사본을 저장하지 않아도됩니다. 그런 다음 스크롤이 끝나면 확인하십시오. 이 코드를 사용하면 왼쪽으로 스크롤 할 수 있지만 오른쪽으로 스크롤하지 못하도록합니다.

CGPoint oldOffset; 
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView 
{ 
    oldOffset = scrollView.contentOffset; 
} 
- (void)scrollViewDidScroll:(UIScrollView *)scrollView 
{ 
    if (scrollView.contentOffset.x < oldOffset.x) { 
     [scrollView setContentOffset:oldOffset]; 
    } 
} 
+0

나는 그 생각을 고맙게 여긴다. 그러나 나는 끌기가 필요하다. 그것은 시작 지점과 끝 지점 사이의 거리 만 제공합니다. – RileyE