41

Ich habe eine UICollectionView mit einem benutzerdefinierten UICollectionViewFlowLayout. Es scrollt horizontal und zeigt nur jeweils einen Gegenstand (volle Höhe). Ich habe pagingEnabled = YES, damit es auf Seiten bleibt.UICollectionView springt nicht, wenn die Datenquelle nur 1 Element hat

Die UICollectionView zeigt Fotos innerhalb eines bestimmten Tages. Ich hatte ursprünglich Tasten, um den Tag +/- 1 Tag zu ändern, aber ich dachte, es wäre nett, wenn der Benutzer die Sammlungsansicht nach dem ersten oder letzten Bild (über einen vorgegebenen Schwellenwert) hinausziehen könnte, um den Tag zu ändern. Ich habe dies mit den UIScrollView-Delegate-Methoden implementiert und es funktioniert super ...... wenn es 2 oder mehr Elemente in der Sammlungsansicht gibt.

Dies ist schwer zu beschreiben, aber wenn es nur 1 Element gibt, erlaubt es mir nicht, das Element über seine Grenzen hinaus zu ziehen. I.E. es gibt keinen Sprung zu ihm.

Ich möchte dieses Verhalten haben, aber ich muss dieses Problem zuerst überwinden. Ich denke, dass, wenn ich pagingEnabled = YES entfernte und targetContentOffsetForProposedContentOffset: proposedContentOffset: withScrollingVelocity verwendete, dass ich es möglicherweise zum Funktionieren bringen kann, aber ich genieße wirklich das snappy Verhalten, das Paging ermöglicht. (Sie schließen sich gegenseitig aus).

Irgendwelche Ideen dazu?

Antwort

98

UICollectionView hat die Eigenschaften alwaysBounceHorizontal und alwaysBounceVertical. Einstellung der Horizontalen auf JA did der Trick.

+13

Um dies im Interface Builder zu aktivieren, verwenden Sie die Option "Bounce Vertical". –

+0

'alwaysBounceHorizontal' und' alwaysBounceVertical' stammen aus der Sicht 'UIScrollView'. – tounaobun

+0

Also kann ich sagen, dass 'UITableView' diese Eigenschaft standardmäßig auf' YES' gesetzt hat, da es Grenzen haben kann? –

2

Danke für @VaporwareWolf, die Antwort ist richtig. Ich möchte eine Ergänzung hinzufügen, dass:

Vergessen Sie nicht, die bounces Eigenschaft YES zugleich Einstellung (durch Storyboard oder Code).

Verwandte Themen