UIScrollView를 루프하고 싶지만보기 목록을 통해 대부분의 루프를 돌리는 것이 아니라 하나의 하위보기를 스크롤하지만 원활하게 순환합니다.Looping UIScrollView Horizontally
본질적으로지도보기를 만들려고하고 있는데, 확대하고 축소 할 수 있고 주변을 스크롤 할 수 있습니다.
누구에게 조언이 있습니까?
UIScrollView를 루프하고 싶지만보기 목록을 통해 대부분의 루프를 돌리는 것이 아니라 하나의 하위보기를 스크롤하지만 원활하게 순환합니다.Looping UIScrollView Horizontally
본질적으로지도보기를 만들려고하고 있는데, 확대하고 축소 할 수 있고 주변을 스크롤 할 수 있습니다.
누구에게 조언이 있습니까?
나는 이전에 같은 종류의 문제로 놀고 있었고 하나의 솔루션에 대한 간단한 데모를 함께 해킹했습니다. 벗어난 타일 많은지도로 구성된지도보기가 관리하기가 쉽지 않거나 어렵게 될지 확실하지 않습니다.
https://github.com/jonah-carbonfive/WrappingScrollView
는 여기 코드에서 명확하지 않다 내가이 경우에하고 있어요입니다.
-scrollViewDidScroll:
대리자 메소드에서 타일 뷰가 완전히 보이지 않는지 확인합니다. 그렇다면 스크롤 뷰의 내용 오프셋 위치를 변경하여 내용 뷰의 위치를 변경하여 타일 뷰가 표시된 영역의 중간에 다시 오도록합니다. 사용자가 타일 뷰의 이미지를보고 다시 타일 뷰 자체로 돌아 갔음을 사용자가 결코 알지 못하게합니다.-hitTest:withEvent:
을 무시하여 타일보기의 위치를 바꾸어 사용자가 어떤 이미지보기를 터치하든간에 위치를 변경하여 super
을 호출하기 전에이 문제를 해결할 수 있습니다. 이제 모든 터치가 타일보기에 도달합니다.그건 미친 짓이지 만 임의의 대화 형 UIViews와 UIControls를 컨테이너에 던져서 한쪽면을 감싸고 다른면을 감쌀 수있게 해줍니다.
정직하게 말하면 이것은 아마도 당신을위한 훌륭한 해결책이 아닙니다. 하나 이상의 차원에서 래핑 할 수있는지도를 그리려한다는 것을 알았다면지도를 여러 타일로 나눕니다. UIScrollView가하는 것처럼 일부 컨테이너보기에서 터치를 감지하고 사용자가 터치를 이동할 때 타일의 위치를 변경합니다. 타일이 보이지 않게 스크롤하여 재사용하여 맵의 새롭게 보이는 영역을 표시합니다. 간단한 경우지도 이미지의 복사본을 두 개만 사용하여 구현할 수 있습니다. 복잡한 경우 UIScrollView를 많이 재현합니다. 표시하는 타일 크기를 조정하고 다른 해상도로 다른 타일 세트를로드하여 메모리 사용을 줄이고 확대/축소하는 동안 해상도를 높이십시오.
이 질문은 아마도 Khrob이 설명한 기능의 종류를 처리하는 방법의 더 좋은 예입니다. http://stackoverflow.com/questions/3071623/make-uiscrollview-wrap-around – Jonah
답변과 링크를 위해 Jonah에게 감사드립니다. 그것으로 놀아, 나는 당신이 분리없이 UIScrollView의 다른 페이지를 접할 수 있다는 것을 몰랐다. 이것은 당신의 기술과 결합하여 트릭을 수행하는 것 같습니다. 내가 기회를 얻 자마자 샘플 앱을 게시하겠습니다. – Khrob
좋아, 내가 따라야 할 행동을 꽤 많이 잡았어. 동일한 이미지로 여러 개의 하위 뷰를 추가하는 대신 하나의 이미지를 두 배로 늘 렸습니다. – Khrob
[근무 샘플 프로젝트] (https://docs.google.com/leaf?id=0B7--XCpu3Or_MDAyNzU0MjktMjAxZS00NjQ1LTk3YzAtNGYzOGQwNTc4NjAy&hl=en) – Khrob
적 이미지에 대한 방법을 알아낼 수 없습니다 스크롤의 끝에서 '스틱'으로 지역? –