2010-03-04 12 views
4

UIScrollviews가 서로 내에있는 계층 구조가 있습니다.UIScrollView 내의 UIScrollView

특정 영역의 스 와이프 이벤트를 내부 스크롤보기로 어떻게 리디렉션 할 수 있습니까?

답변

2

UIScrollViews를 한 축 또는 다른 축에서만 스크롤 할 수 있도록 설정 한 경우 (즉, contentSize 속성을 적절하게 설정하십시오.보기를 세로로 스크롤 할 수있게하려면 contentSize.width 값을 다음과 같이 동일하게 설정하십시오. 그것의 bounds.size.width). 같은 축에서 두 개의 뷰가 스크롤되지 않는다고 가정하면 그들은 단지 작동해야합니다. 일반적으로 '하위보기'는 세로로 스크롤되고 상위보기는 가로로 스크롤됩니다.

+0

주 UIScrollView는 확대/축소가 가능하므로 모든 방향으로 스크롤 할 수 있어야합니다. – Jean

1

가능하다면이를 피하기 위해 다시 디자인해야합니다. Safari는 삽입 된 뷰를 두 손가락으로 스크롤함으로써 이러한 상황 (즉 iframe 및 텍스트 영역)을 처리합니다. 이것은 매우 발견 할 수는 없지만, 대안보다 더 낫습니다. 이는 훨씬 더 실망 스럽습니다. 삽입 된 뷰가 화면 상 거의 나타나지 않았다면, 외부 뷰를 스크롤하려는 시도는 대신 내부 뷰를 스크롤 할 수 있었지만 아무것도 표시하지는 못했습니다. 그것은 단지 반응이없는 것처럼 보일 것입니다.

그렇습니다. 그래도이 작업을 수행하려는 경우 외부 스크롤보기의 canCancelContentTouchesNO으로 설정해보십시오. 내부 뷰에서 터치가 시작될 때 외부 뷰가 스크롤되지 않도록해야합니다. 사파리 스타일의 두 손가락 스크롤링을 얻으려면 UIScrollView의 하위 클래스 화와 -touchesShouldBegin:withEvent:inContentView: 메소드 구현이 필요합니다.