2012-03-16 2 views
29

안드로이드에서는 ViewPager와 Fragments를 사용하여 동일한 레이아웃을 가진 여러 페이지의 데이터를 찾아 볼 수있는 깔끔한 방법이 있습니다. 사용자가 왼쪽 또는 오른쪽으로 스 와이프하면 페이지가 변경됩니다. 모든 페이지에 대해 하나의보기 컨트롤러와 레이아웃 리소스가 있지만 사용자가 탐색 할 때 데이터 내용이 변경됩니다. 또한 다음 페이지의 내용이 이미로드 된 것을 볼 수있는 왼쪽 및 오른쪽으로 스 와이프하는 것에 대한 애니메이션 효과가 있습니다.iOS의 안드로이드 ViewPager와 동일합니까? 데이터 페이지 스 와이프/넘기기

iOS에서 이와 동일한 기능은 무엇입니까?

+0

나는 똑같은 것을 찾고있다. 나는 IOS에 안드로이드 애플 리케이션을 포팅 오전 ScrollView, 수평 TableView, PageViewController, 등등을 사용할지 여부를 모르겠다. 또한 동적 할당을 처리하는 방법이나 안드로이드에서 자동으로 뷰를 해제하는 방법을 모르겠다 각 세부 view는 ViewPager와 Adapter 등에서 더 이상 필요하지 않을 때 해방 된 자체 조각이었습니다. –

+1

Container view와 UIPageViewController를 사용하면 다음과 같이 할 수 있습니다. https://stackoverflow.com/a/45188331/4665694 –

답변

36

pagingEnabled 속성을 YES로 설정하고 UIScrollView을 사용하십시오. 일반적으로 UIPageControl이 함께 사용됩니다.

Google의 "UIScrollView paging"의 경우 많은 자습서와 예제를 찾을 수 있습니다. Apple은 PageControl 샘플 프로그램을 제공합니다.

아이폰 OS 어댑터와 같은 클래스의 모든 종류를 제공하지만, 여기 당신이 한 번에 모든 페이지를 인스턴스화 할 필요가 없도록 "가상 페이지"를 구현하는 방법을 설명하는 튜토리얼입니다하지 않습니다 http://cocoawithlove.com/2009/01/multiple-virtual-pages-in-uiscrollview.html

21

UIPageViewController을보아야합니다. iOS 5부터 사용 가능합니다.

+0

감사합니다.하지만 데이터 어댑터를 사용하는 대신 탐색 컨트롤러를 사용하는 것처럼 보입니다. 같은 뷰 콘트롤러. 나는 "페이지"의 불특정 다수를 가지고 있으며, 그들의 내용은 웹 서버로부터 다운로드된다. – Vanja

+1

각 페이지마다 여러 개의 객체가있는 ViewController 클래스를 하나 만들고 PageViewController에 추가 할 수 있습니다. – Ingolmo

+0

사실입니다. 아마 iOS에서 그렇게하는 방법 일 것입니다. 그러나 적어도 iOS 4를 지원해야하므로 UISwipeGestureRecognizer를 사용할 수 있는지 알아볼 것입니다. 고마워요 :) – Vanja

6

android의 viewPager와 유사한 iOS 용 맞춤 컨트롤을 만들었습니다. 이것을 확인할 수 있습니다 here.

+1

멋진 컨트롤! 감사합니다 –

+1

그래서 도움이 컨트롤러 .. 감사합니다 Bro ... –

0

방문 https://github.com/vowed21/HWViewPager

그것은 당신을 도움이 될 수 있습니다.

Inherited UICollectionView.

재사용 가능한 셀 (가능성이 안드로이드의 어댑터) 왼쪽, 오른쪽의

및 수 있도록 미리보기 부분입니다.

+0

안녕 내가 HWViewpager를 전체보기 데이터를 다시로드하는이 HWViewpager 다시로드 데이터를 호출 할 때 슈퍼 뷰에서 응용 프로그램의 하위보기로 HWView 호출기를 사용하고 있습니다. 당신이 그것에 대해 어떤 생각이 있다면 Plz 도움. –

0

다음과 같은 아이디어를 사용하여 직접 구현할 수 있습니다.

우리가 3 개 항목 (셀)을 통해 루프 무한히하고자한다고 가정 - 다음 C0, C1, C2, 우리는, 중심 셀의 좌측 및 우측에

C0 C1을 결과를 더미 셀을 생성 할 수있다 C2 [C0 C1 C2] C0 C1 C2 브래킷

세포를 단말기 화면을 통해 우리는 참조 셀이며, 우리가 왼쪽으로 이동하면,

C0 [C1 C2 C0] C1 C2 C0 C1 C2

이 순간에 주어진 더미 셀의 오른쪽을 가리 키도록 contentOffset을 강제합니다.

C0 [C1 C2 C0] C1 C2 C0 C1 C2 -> C0 C1 C2 C0는 [C1 C2 C0] C1 C2가

그것은 동일한 메커니즘으로 작동하면 오른쪽으로 스크롤 할 때.

아래 내 솔루션에서 항목보기 너비를 상위보기와 동일하게 설정하면 문제가 해결됩니다.

https://github.com/DragonCherry/HFSwipeView

그냥 싶어 단지, 그것이 어떻게 작동하는지 확인하려면 아래 링크를 클릭하고 "재생 탭"합니다.

https://www.cocoacontrols.com/controls/hfswipeview

그냥 전체 크기의 세포 항목의 경우에 작동 할 수있는 UIScrollView에서 pagingEnabled 옵션을 사용하여,하지만 당신은 부모 (스크롤)보기보다는 콘텐츠 항목의 좁은 폭을 설정하려면 제대로 작동하지 않습니다. "동기화"또는 "가장자리 미리보기"에 대한 cocoacontrols 샘플을 참조하여이 기능을 확인하십시오.