2012-10-22 5 views
3

나는 에 약간 UIViews을 가지고 있습니다. 내가 뭘 하려는지, UIViews 만진/손길이 닿지 터치 이벤트를 잡는 것입니다.가급적이면 상호 작용을 사용하지 않고 UIScrollView 내부의 UIView에서 접촉 감지

내가 겪고있는 문제는 UIScrollView이 모든 터치 이벤트를 삼키는 것으로 보이며, 특히 UIView에 너무 오래있을 경우에 발생합니다.

UIScrollView은 userInteraction을 자동으로 스크롤 할 수 없게 설정하는 것이 바람직합니다.

이것이 가능합니까?

UIViews 서브 클래 싱을 시도했지만 touches 이벤트가 호출되지 않습니다.

답변

1

아마도 터치 인식기 객체가 연결된보기가 앱이 인식하는보기가되도록 순서를 재정렬하십시오. 당신은 그 라인을 따라 뭔가로 scrollviewtapGesture을 첨부 할 수 있습니다

+0

나는 이것을 생각했지만 UIView를 스크롤보기와 동일한 속도로 이동하는 것은 매우 어려울 것이라고 생각한다. – Darren

+0

@Darren Hmmm. 커스텀으로 설정되고 알파 bg가 0.0으로 설정된 UIButton은 어떻습니까? 또한, UIView 추가 할 경우 UIScrollView 함께 이동할 필요가 없습니다 ... – jpcguy89

4

상단에 문서 개요에서 이동 (스크롤 뷰) :

UITapGestureRecognizer* tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapGestureUpdated:)]; 
    tapGesture.delegate = self; 
    tapGesture.numberOfTapsRequired = 1; 
    tapGesture.numberOfTouchesRequired = 1; 
    [self addGestureRecognizer:_tapGesture]; 

은 다음 - (void)tapGestureUpdated:(UITapGestureRecognizer *)tapGesture 방법이은을 확인하려면 Responsibility는 것입니다 위치를 터치하고 하위 뷰 중 하나에 따기가 있는지 확인합니다. 특정 뷰가 변경되었음을 알리는 대리자 메서드를 호출 할 수 있습니다.

+0

이 메서드는 한 번만 호출 할 수 있습니까? 시간 터치가 UIView에 있으면 길이를 원하므로 touchStart 및 touchEnd 이벤트가 필요합니다. – Darren

+0

tapGesture 인수에는 UIGestureRecognizerStateBegan 또는 UIGestureRecognizerStateEnd와 같은 상태가 있습니다. 관심이있는 두 번의 터치 이벤트를 감지하기 위해 이것을 사용합니다. – tiguero

+0

http://edveloper.apple.com/library/ ios/# documentation/uikit/reference/UIGestureRecognizer_Class/Reference/Reference.html # // apple_ref/occ/cl/UIGestureRecognizer – tiguero

관련 문제