recherche

Maison  >  Questions et réponses  >  le corps du texte

ios - 怎么用collectionView 做一个横向无限循环滚动,而滚动后的item最终可以回到屏幕中间。

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

PHPzPHPz2771 Il y a quelques jours838

répondre à tous(2)je répondrai

  • 高洛峰

    高洛峰2017-04-18 09:43:21

    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...

    répondre
    0
  • PHP中文网

    PHP中文网2017-04-18 09:43:21

    加头加尾, 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.

    répondre
    0
  • Annulerrépondre