2012-03-16 11 views
29

Androidでは、ViewPagerとFragmentsを使用して、同じレイアウトの複数のページをブラウズするためのきれいな方法があります。ユーザーが左右にスワイプし、ページが変更されます。すべてのページに1つのビューコントローラと1つのレイアウトリソースがありますが、ユーザーがブラウズするとデータコンテンツが変わります。スワイプの左右にアニメーション効果があり、次のページのコンテンツが既に読み込まれていることがわかります。iOSのAndroidのViewPagerに相当しますか?データページをスワイプ/フリップする

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

+0

私はまったく同じことを探しています。私はアンドロイドアプリをiOSに移植しており、ScrollView、Horizo​​ntal TableView、PageViewControllerなどを使用するかどうかはわかりません。また、ダイナミックアロケーションを処理する方法やAndroidの自動ビューを解放する方法がわかりませんViewPagerとAdapterなどで不要になったときに解放された独自のフラグメントでした。同等のものは何ですか? –

+1

コンテナビューとUIPageViewControllerを使用して、これを行うことができます。 https://stackoverflow.com/a/45188331/4665694 –

答えて

36

UIScrollViewにはpagingEnabledプロパティをYESに設定してください。通常、UIPageControlがそれと共に使用されます。

"UIScrollViewページング"の場合は、多くのチュートリアルや例があります。 AppleはPageControlサンプルプログラムを提供しています。

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

21

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

+0

ありがとうございます。しかし、これはデータのアダプタを1つに同じビューコントローラ。私は不特定の量の「ページ」を持っており、その内容はウェブサーバーからダウンロードされます。 – Vanja

+1

ページごとに複数のオブジェクトを持つ1つのViewControllerクラスを作成し、それをPageViewControllerに追加することができます。 – Ingolmo

+0

それは本当です。これはおそらくiOS上で行う方法です。しかし、私は少なくともiOS 4をサポートしなければならないので、私はUISwipeGestureRecognizerを使用できるかどうか試してみるつもりです。ありがとう:) – Vanja

6

アンドロイドのviewPagerに似たiOS用のカスタムコントロールを作成しました。あなたはこれを確認することができますhere

+1

素敵なコントロール!おかげで –

+1

とても便利なコントローラ..おかげで... –

0

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

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

Inherited UICollectionView。

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

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

+0

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

関連する問題