web-dev-qa-db-fra.com

UICollectionView ne rebondit pas lorsque la source de données n'a qu'un seul élément

J'ai un UICollectionView avec un UICollectionViewFlowLayout personnalisé. Il défile horizontalement et n'affiche qu'un seul élément à la fois (pleine hauteur). J'ai pagingEnabled = YES pour qu'il colle aux pages.

L'UICollectionView montre des photos dans une journée particulière. Au départ, j'avais des boutons pour changer le jour +/- 1 jour, mais je pensais que ce serait bien si l'utilisateur pouvait tirer sur la vue de la collection après la première ou la dernière image (au-delà d'un seuil prédéterminé) pour changer le jour. J'ai implémenté cela en utilisant les méthodes déléguées UIScrollView et cela fonctionne très bien ...... s'il y a 2 éléments ou plus dans la vue de la collection.

C'est difficile à décrire, mais s'il n'y a qu'un seul élément, cela ne me permet pas de tirer l'élément au-delà de ses limites. C'EST À DIRE. il n'y a aucun rebond.

Je voudrais avoir ce comportement, mais je dois d'abord résoudre ce problème. Je pense que si j'ai supprimé pagingEnabled = YES et utilisé targetContentOffsetForProposedContentOffset: proposeContentOffset: withScrollingVelocity, que je pourrais peut-être le faire fonctionner mais j'apprécie vraiment le comportement accrocheur que la pagination permet. (Ils s'excluent mutuellement).

Des idées à ce sujet?

50
VaporwareWolf

UICollectionView a les propriétés alwaysBounceHorizontal et alwaysBounceVertical. Définir l'horizontale sur OUI did l'astuce.

122
VaporwareWolf

Merci pour @VaporwareWolf, la réponse est correcte. Je veux ajouter un supplément qui:

N'OUBLIEZ PAS de définir la propriété bounces sur YES en même temps (via le storyboard ou votre code).

3
guozqzzu