2010-12-31 2 views
4
UIView -> UIImageView 

나는 내가 내 UIImageView에 누르고 내 touchesBegan 방법에 NSLog() 문을 볼 수 있기 때문에 상황이 어느 정도 확인 작업이 알고있다.UIImageView가 UIScrollView 내에 배치되면 touchesBegan이 작동을 멈추는 이유는 무엇입니까?

.

UIView -> UIScrollView -> UIImageView 

나는 내 UIImageView에 탭하면 동일한 UIImageView 더 이상 UIScrollView로하고 touchesBegan가 호출되는 것을 끕니다. (나는 다른 것을 변경하지 않았습니다. 모든 연결, 방법 및 코드는 변경되지 않습니다.)

touchesBegan가 더 이상 작동하지 않는 이유는 무엇입니까? 다시 작동 시키려면 어떻게해야합니까?

답변

2

UIScrollView에 대한 설명서를 살펴보십시오.

스크롤 막대에는 스크롤 막대가 없으므로 스크롤 할 의도와 스크롤 할 의도가 콘텐츠의 하위보기를 추적하는지 알 수 있어야합니다. 이 결정을 내리기 위해 타이머를 시작하여 터치 다운 이벤트를 일시적으로 가로 채고 타이머가 작동하기 전에 접촉하는 손가락이 움직이는 지 확인합니다. 위치가 크게 변경되지 않고 타이머가 발생하면 스크롤 뷰는 추적 이벤트를 컨텐츠 뷰의 수정 된 하위 뷰로 보냅니다. 그런 다음 사용자가 타이머가 경과하기 전에 손가락을 충분히 드래그하면 스크롤보기는 하위보기에서 추적을 취소하고 스크롤을 수행합니다. 서브 클래스는 스크롤 뷰가 스크롤링 제스처를 처리하는 방법에 영향을주기 위해 touchesShouldBegin:withEvent:inContentView:, pagingEnabledtouchesShouldCancelInContentView: 메소드 (스크롤 뷰에 의해 호출 됨)를 무시할 수 있습니다.

또한 Scroll View Programming Guide을 읽는 것이 좋습니다.

4

이벤트를

코드를 얻을 수 uitapgesture을 추가

UITapGestureRecognizer *ges11=[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(Handeltap:)]; 
    [imagename addGestureRecognizer:ges11]; 

는 U가 전화를받을 것 "Handeltap"하나의 작업 이름을 생성합니다.

4

기본적으로 UIImageView은 사용자 동작을 처리하지 않습니다. 집합을 UIImageView 인스턴스의 userInteractionEnabled에서 예

관련 문제