11

App Store で検索結果を表示するときに Apple が持っているものを真似ようとしています。(参照: http://searchengineland.com/apple-app-search-shows-only-one-result-at-a-time-133818 )

カードの詳細アプリケーション情報のように表示され、ページングされます。真ん中にアクティブなカードが 1 つあり、スクロール ビューのページング動作がまだ損なわれていないときに、前と次のカードを表示する方法に行き詰まっています。

UICollectionView を使用してみましたが、前のページと次のページが表示されることを期待して、clipSubviews を NO に設定しましたが、セルが画面から消えるとすぐに、セルが非表示になり (ビュー階層から削除され)、表示されます。それがUICollectionViewのフライウェイトパターン(UICollectionViewの振る舞い)だと思います。何が可能になるかについてのアイデアはありますか?

乾杯、

レンディ・プラナータ

4

2 に答える 2

0

これを行う方法を示すサンプルプロジェクトをまとめました。画面の 320 ポイントよりも 100 ポイント広いコンテナー ビューを作成しました。次に、UICollectionView をそのコンテナーに入れます。これにより、画面の両側ですべてが 50 ポイントオフセットされます。

次に、何が起こっているかを視覚的に識別できるように、背景とラベルだけを持つコンテンツ セルがあります。左右に空のセルがあります。viewDidLoad メソッドでは、コンテンツ インセットが左右に負の値に設定され、空のセルがスクロールして表示されるようになっています。インセットを好みに合わせて調整できます。

これは、動作をかなり厳密に模倣します。以下のラベルを取得するには、例のように contentOffset 値をチェックして、どのセルがフォーカスされているかを判断します。そのためには、UICollectionView の一部である UIScrollViewDelegate を使用します。

https://github.com/brennanMKE/Interfaces/tree/master/ListView

このサンプル プロジェクトには 2 つのコレクション ビューがあります。1つは通常の水平フローレイアウトで、もう1つはセルが大きいもので、あなたが言及した例を模倣したものです。

于 2013-08-02T17:56:30.203 に答える