web-dev-qa-db-ja.com

iOSのAndroidのViewPagerと同等ですか?データのページをスワイプ/フリップする

On Android ViewPagerとFragmentsを使用して、同じレイアウトのデータの複数のページ間を閲覧するのに便利な方法があります。ユーザーが左または右にスワイプすると、ページが変更されます。ViewControllerとレイアウトは1つだけです。すべてのページのリソースですが、ユーザーが閲覧するとデータコンテンツが変更されます。左右にスワイプすると、次のページのコンテンツが既に読み込まれているのを見ることができるアニメーション効果もあります。

IOSでこれに相当するものは何ですか?

37
Vanja

UIScrollViewプロパティをYESに設定して pagingEnabled を使用します。通常、 UIPageControl が一緒に使用されます。

「UIScrollViewページング」でGoogleを使用している場合は、多くのチュートリアルと例を見つけることができます。 Appleは PageControl サンプルプログラムを提供します。

iOSはアダプターのようなクラスを提供しませんが、すべてのページを一度にインスタンス化する必要がないように、「仮想ページ」を実装する方法を説明するチュートリアルを次に示します。 http:// cocoawithlove.com/2009/01/multiple-virtual-pages-in-uiscrollview.html

42

IPageViewController をご覧ください。 iOS 5以降で使用可能です。

24
Ingolmo

AndroidのviewPagerと同様に動作するiOS用のカスタムコントロールを作成しました。これを確認できます here

6
Shabib

訪問 https://github.com/vowed21/HWViewPager

あなたを助けるかもしれません。

継承されたUICollectionView。

再利用可能なセル(おそらくAndroidのアダプター)

そして、左側、右側のプレビュー部分を有効にします。

0
hyunwoo

次のアイデアを使用して、独自に実装できます。

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サンプルを参照して、この機能を確認してください。

0
DragonCherry