Jetzt habe ich eine UICollectionView eingerichtet mit horizontalen Paging. Ich habe meine Zellen so skaliert, dass sie auf den Bildschirm passen, so dass nur einer sichtbar ist (außer Sie scrollen).Welche Seite von UICollectionView ist sichtbar?
Was ich tun möchte, ist der Indexpfad der Zelle, die in Sicht ist, sobald Sie mit dem Scrollen aufhören. Dies liegt daran, dass andere Teile der Ansicht von den aktuell sichtbaren Informationen abhängig sind.
Ich habe eine Funktion in der ScrollViewWillBeginDecelerating-Funktion eingerichtet und ich bin in der Nähe, aber ich verstehe immer noch nicht, wie es die Zellen ergreift.
func scrollViewWillBeginDecelerating(_ scrollView: UIScrollView) {
if(lastContentOffset > scrollView.contentOffset.x && lastPointVisited > 0)
{
lastPointVisited -= 1
print("Scrolling Right")
}
else if(lastContentOffset < scrollView.contentOffset.x && lastPointVisited < myPoints.count - 1)
{
lastPointVisited += 1
print("Scrolling Left")
}
lastContentOffset = scrollView.contentOffset.x
}
Dies bringt mir genaue Ergebnisse, wenn ich sehr vorsichtig mit dem Scrollen bin. Schnelles oder nur halbes Scrollen einer Seite, so dass es zurückschnappt, scheint alles abzuschütteln.
Warum verwenden Sie 'scrollViewWillBeginDecelerating' anstelle von' scrollViewDidScroll' oder 'scrollViewDidEndScrollingAnimation' '. Es ist nicht klar aus deiner Frage, was du tatsächlich beobachtest, was nicht zu erwarten ist. Was ist das eigentliche Problem? Was wird "abgeworfen"? –
Warum verwenden Sie nicht stattdessen einen 'UIPageViewController'? – Sweeper
Ich benutzte 'scrollViewWillBeginDecelerating', weil ich damit beginnen wollte, eine Karte basierend darauf zu verschieben, was als nächstes in der Sammlungsansicht kam. Obwohl ich nach der Antwort von @RajatJangra aus der untenstehenden Antwort folge, merke ich, dass es keinen Unterschied im Timing macht und zu warten, bis das Scrollen vollständig abgeschlossen ist. –