2011-02-23 2 views
17

페이징을 사용하는 가로 스크롤링 UIScrollView가 필요합니다. 이 스크롤보기의 페이지는 다른 너비를 갖기 때문에 스크롤 거리는 페이지마다 다릅니다.다른 페이지 폭을 가진 페이징 UIScrollView

목표는 : 예컨대, 다른시기에 대한 선택기를 만들기 위해 여기

| Now | Yesterday evening | Last Week | Last Month | 
    ^   ^   ^   ^   <- stopps here 

| Now || Yesterday evening |보다 작은 폭이다. 이 값을 페이징 할 때 스크롤 뷰는 해당 값의 중앙에서 멈춰야합니다.

그럴 수 있습니까?

- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{ 

} 

는 사용자 정지가에 손가락을 이동할 때 호출하는 방법입니다 :

+0

이 질문에 대한 내 대답보기 : http://stackoverflow.com/a/10993426/60488 –

답변

12

그것은 내가 당신이 UIScrollViewDelegate 프로토콜 방법을 구현해야합니다 생각

... 확실히 가능하지만 그렇게 자동입니다

yourScrollView.contentOffset 

를 다음 파 중 어느 하나를 확인 : 당신은 그 안에 확인하실 수 있습니다 있는 ScrollView의 콘텐츠의 좌표 ge.x (배열을 만들 때 배열에 등록하거나 scrollView에 추가 된 모든 뷰의 원점을 확인)가 가까워지면 페이지 (애니메이션 포함)의 오프셋 집합으로 이동합니다.

- (void)setContentOffset:(CGPoint)contentOffset animated:(BOOL)animated 
+0

메로니언에게 감사합니다. 정확히 내가 찾고있는 것이 었습니다! 일부 추가 팁 : (무효) scrollViewDidEndDecelerating - ': (있는 UIScrollView *) scrollView' – liefersfl

+3

에 대한 는 - -'UIScrollView.pagingEnabled'가 NO' '로 설정해야합니다 나는 또한 UIScrollViewDelegate 프로토콜 메서드를 구현했다 더 나은 결과는'- scrollViewWillBeginDecelerating : (UIScrollView *) scrollView' 메소드 구현을 끝냈습니다. – darune

관련 문제