2011-01-27 3 views
5

세 개의 하위 뷰가 쌓인 상태에서 다른 하위 뷰를 스크롤 할 수있는 중간 뷰로 만들려는 뷰를 만들고 싶습니다.다른 하위 뷰를 스크롤 할 수있는 동안 UIScrollView의 하위 뷰를 고정하십시오.

이 프로그래밍 방식으로 어떻게 구현할 수 있습니까? 시도해 보았습니다

  • 루트보기의 contentsize를 스크롤 가능한보기의 크기로 설정하면 모든보기가 스크롤됩니다.

- 루트보기의 속성을 설정하지 않고 중간 하위보기의 내용을 설정하지만 모든보기를 스크롤 할 수 없게 만듭니다.

도와주세요. 나는 iOS에 익숙하지 않다.

미리 감사

답변

23

에 당신은 당신의 뷰의 위치를 ​​조정 UIScrollViewscrollViewDidScroll: 대리인 콜백을 사용할 수 있습니다. 콜백에서 스크롤 뷰어 contentOffset을 가져 와서 고정 뷰의 위치를 ​​설정하는 데 사용합니다.

예를 들어, 고정 뷰를 스크롤 뷰 상단에서 항상 100 픽셀로 유지하려면 초기 프레임을 (0, 100, width, height)로 설정 한 다음 콜백에서 프레임을 (0, contentOffset.y + 100, 너비, 높이).

결과적으로 하위보기는 주어진 높이로 고정되어 나타납니다.

+0

감사합니다. 그게 효과가 있었어. 그냥 내 scrollviews 가로 스크롤이 필요하므로 델리게이트에서 프레임의 x 좌표를 업데이 트하십시오. – sam

+0

문제 없음! 나는 당신이 수직 스크롤링을한다고 생각했다. 다행 이었기 때문에 다행이다. – kevboh

+0

차가움. 나는 그것을 확인하고 이것은 iOS 3.2 이후 backgroundView로 UITableView가하는 것과 정확히 같다. – pt2ph8

3

UIScrollView에 수퍼 뷰 (예 : 컨테이너보기)가있는 경우 UIScrollView 대신 '고정'보기를 수퍼 뷰의 하위보기로 추가 할 수 있습니다. 프레임 좌표는 한 번만 계산하면됩니다.

0

당신은이 같은있는 ScrollView의 슈퍼 볼에있는 UIScrollView에서 하위 뷰를 이동 할 수 있습니다 :이 스냅 샷에 다음과 같이

장소/스크롤 뷰 (안 내부 스크롤 뷰) 위에 버튼을 설정합니다. 또한 스크롤 뷰의 수퍼 뷰와 관련하여 버튼 제약 조건 (위치)을 설정합니다. 여기

enter image description here

는 심판이다. 서로에 대한 각 뷰의 위치 계층 구조의 스냅 샷.

enter image description here

관련 문제