28

레벨 팩을 선택하기 위해 "Cut the Rope"게임과 비슷한 종류의 "게임 모드"메뉴를 만들려고합니다 :페이지 번호 매김 + 이전/다음 페이지의 일부를 보여주는 UIScrollView

내가 특별히 원하는 것은

Cut the Rope menu

항목을 (이 경우에는 "2. 패브릭 상자"항목)은 "현재 항목"을 더한 이전의 비트를 보여 주며 다음과 같은 효과를 (달성하는 것입니다 스크롤 할 수있는 모드가 더 있음을 사용자가인지하고 있는지 확인하고 페이지 매김을 활성화하여 스크롤보기를 자동으로이 항목에 "센터"로 만듭니다.

이것은 페이지 매김이 활성화 된 UIScrollView에 대한 자연스러운 일로 보입니다. 그러나 페이지 매김이 뷰 경계의 배수에서 발생하는 것으로 보입니다.

그래서 : 페이지 경계가 여러 페이지 경계에서 발생하는 경우 UIScrollView에서이 효과를 얻을 수있는 방법이 있습니까?

우리가 화면의 전체 너비를 볼 수 있다는 사실은이 경우 UIScrollView 프레임의 너비가 320px가 될 것을 제안하지만, 이전의 작은 항목을 표시하려면 각 개별 항목이 그보다 작아야합니다. 따라서 다음 항목은 페이지 매김을 엉망으로 만듭니다.

답변

43

참조를 위해 페이지 컨트롤의 샘플 구현을 여기에서 볼 수 있습니다. https://developer.apple.com/library/content/samplecode/PageControl/Introduction/Intro.html

놀랍게도 을 구현하면 스크롤보기의 너비는 실제로 320 (또는 480)보다 작습니다. 설정 마법 속성입니다 :

scrollView.clipsToBounds = NO 

이 구현 유일한 문제는 터치가있는 ScrollView의 경계를 벗어난 경우있는 ScrollView 더 터치 이벤트를 얻을 수 없다는 것입니다. 상위 hitTest 이벤트를 scrollView에 전달하면이 문제를 해결할 수 있습니다. 내가 추천 한 것과 UIScrollView horizontal paging like Mobile Safari tabs

약간 다른를하지만 같은 일을 수행합니다

그냥 더 나은 설명을 링크합니다.

편집 :

내가 (나에게 문제에서 끌어 오기 요청이나 의견을 드롭 함) 희망 박스 방식의 아웃, 위 않는 작은 프로젝트라고 LXPagingViews 있습니다 https://github.com/lxcid/LXPagingViews

+1

완벽한 ! 감사! –

+0

우리가 어떻게 이런 종류의 페이지 뷰에서 줌을 지원합니까? –

+0

@lxcid 당신은 내 영웅입니다. – abbood