ios - 怎么用collectionView 做一个横向无限循环滚动,而滚动后的item最终可以回到屏幕中间。
PHPz
PHPz 2017-04-18 09:41:21
0
2
839

参考了一些案例,但是实现了滚动后item能回到屏幕中间,却不知道怎么实现无限循环滚动。利用scrollView的代理方法,虽然实现了循环滚动。但是这样子,就会令item滚动后回到屏幕中间这个功能失效。求大神支招!!!

PHPz
PHPz

学习是最好的投资!

répondre à tous(2)
小葫芦

Je dois réécrire ma propre réponse. Est-ce parce que j'ai mal posé la question que personne n'a répondu ? D'accord! Je vais le finir moi-même !

 -(CGPoint)targetContentOffsetForProposedContentOffset:(CGPoint)proposedContentOffset withScrollingVelocity:(CGPoint)velocity

Cette méthode est généralement utilisée pour déterminer la position finale de l'élément. La modification de cette méthode peut produire certains effets d'adsorption, mais lorsque nous rencontrons des éléments de boucle, nous obtenons généralement l'effet de boucle via la méthode déléguée de scrollView, mais via cet As. pour la méthode, étant donné que le contentOffset de collectionView est modifié, la méthode ci-dessus ne peut pas calculer la position d'arrêt finale de l'élément. Alors, que devons-nous faire pour boucler et faire défiler l'élément jusqu'à la position spécifiée ?
Pardonnez-moi d'utiliser une méthode très basse

-( NSInteger )collectionView:( UICollectionView *)collectionView numberOfItemsInSection:( NSInteger )section
{
    return 10000;
}

Définissez le nombre d'articles, - - ! La raison du mécanisme de réutilisation est que nous n’avons pas à nous soucier des problèmes de mémoire et de performances ! S'il vous plaît, donnez-moi quelques conseils s'il existe une meilleure façon...

Ty80

加头加尾, par exemple, s'il y a quatre éléments, l'élément réel doit être 6, soit 412341. Lors d'un défilement manuel vers l'arrière 1, le code glissera immédiatement (sans effet d'animation) vers l'avant 1 , et la direction inverse est similaire.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal