web-dev-qa-db-ja.com

データソースに1つのアイテムしかない場合、UICollectionViewはバウンスしません

カスタムUICollectionViewFlowLayoutを持つUICollectionViewがあります。水平にスクロールし、一度に1つの項目のみを表示します(全高)。 pagingEnabled = YESが設定されているため、ページに固定されます。

UICollectionViewは、特定の日の写真を表示します。最初に日を変更するためのボタンがありました+/- 1日ですが、ユーザーが最初または最後の画像(所定のしきい値を超えて)を超えてコレクションビューを取得して日を変更できるといいと思いました。 UIScrollViewデリゲートメソッドを使用してこれを実装しました。コレクションビューに2つ以上のアイテムがある場合は、うまく機能します。

これを説明するのは難しいですが、アイテムが1つしかない場合は、境界を超えてアイテムをプルすることはできません。 I.E.バウンスはありません。

私はこの振る舞いを持ちたいのですが、最初にこの問題を克服する必要があります。 pagingEnabled = YESを削除してtargetContentOffsetForProposedContentOffset:proposedContentOffset:withScrollingVelocityを使用した場合、動作させることができるかもしれないと思っていますが、ページングが可能にするスナッピーな動作を本当に楽しんでいます。 (これらは相互に排他的です)。

これに関するアイデアはありますか?

50
VaporwareWolf

UICollectionViewには、プロパティalwaysBounceHorizontalおよびalwaysBounceVerticalがあります。水平をYESに設定するdidトリック。

122
VaporwareWolf

@VaporwareWolfをありがとう、答えは正しいです。次のサプリメントを追加したい:

bouncesプロパティをYESに同時に設定することを忘れないでください(ストーリーボードまたはコードを使用)。

3
guozqzzu