2017-02-06 6 views
0

私のアプリに画像スライダを作成しています。それはこのように見えます。私が水平にスクロールすることができる小さな画像があり、それぞれに触れると大きな画像ビューアが開きます。スライダのiOSアプリの画像ビューア付きImageSlider

slider with images image viewer

私はUICollectionViewを作成し、各セルはイメージです。セルをクリックすると、別のViewController(イメージビューアとして動作する)がロードされます。このビューには大きな画像用のUIImageViewがあります。

質問: 1)スワイプで画像ビューアで画像を変更できるようにするには、どうすればいいですか 2)私はどこで最もメモリ使用量を気にするべきですか?小さな画像でも、シミュレータでは非常に滑らかに見えません。 3)これは画像スライドビューアを作成するための正しい方法ですか、何か不足していますか?多分、キャッシュ非同期ローディングやその他のクールな機能を扱うフレームワークがありますか?

+0

あなたはUIPageViewControllerと一緒に行くとあなたのアイデアは、私はあなたが小さな画像と大きい画像のためのcontentviewcontrollerの2つの画像ビューを取ることができることを意味します。小さな画像ギャラリーを隠すことができる任意の画像私はあなたが望むアニメーションで大きな画像を表示します。 –

+0

** ImageView.image = myImages [i + 1] **または** [i-1] **を使用して画像をスワイプして画像の配列を作成し、** i **は画像を通じてカウンターとして機能します。イメージを選択してセグを準備するときは、i値を詳細イメージビューコントローラに渡します。 ** i **値を使用して "i/15"を作成できるので、これは本当に便利です –

答えて

1

あなたの画像がどこから来たのか分かりません。それはサーバーかアプリにバンドルされてコピーされていますか?

小さな画像の場合は、サムネイルを使用する必要があります(大きな画像はロードせず、事前に画像を処理し、500x500のようなサムネイルを事前に作成して表示してください)。サーバーからロードする場合は、GCDを使用して非同期処理を処理する「レイジーローディングイメージ」を検索します。

この目的でCollectionViewを使用するのは問題ありません。あるいは、UIPickerViewをカスタマイズして、フリースクロ​​ールの代わりに選択した画像に「スナップ」効果を持たせることもできます。もう1つの選択肢は、githubで見つかるかもしれないカスタムコントロールです。

を編集します。スクロールがCollectionViewの場合は、layer.masksToBound = YESを使用している可能性があります。これはパフォーマンスを悪くします。これを使わないでください。

+0

ありがとうございます!画像はサーバーから読み込まれます – moonvader

関連する問題