Iphone 如何使用分页创建永久滚动的UIScrollView?

Iphone 如何使用分页创建永久滚动的UIScrollView?,iphone,uiscrollview,Iphone,Uiscrollview,我有20个项目,用户可以从中选择。现在我想创建一个启用分页的UIScrollView,它允许永远滚动。如果到达终点,则追加起点,依此类推 做这样的事情最简单的方法是什么?我担心当我达到偏移量y=10000.0f时,可能会影响记忆。不确定 此外,平滑的“永久滚动体验”也很重要。因此,当到达终点时,仅将偏移设置为0/0很可能不起作用。。。我记得一年前我试过,当偏移量设置为其他值时,UIScrollView将整个过程设置为反向(错误的方向,从头到尾);它只需要CoreAnimation处理大量数据。这

我有20个项目,用户可以从中选择。现在我想创建一个启用分页的UIScrollView,它允许永远滚动。如果到达终点,则追加起点,依此类推

做这样的事情最简单的方法是什么?我担心当我达到偏移量y=10000.0f时,可能会影响记忆。不确定


此外,平滑的“永久滚动体验”也很重要。因此,当到达终点时,仅将偏移设置为0/0很可能不起作用。。。我记得一年前我试过,当偏移量设置为其他值时,UIScrollView将整个过程设置为反向(错误的方向,从头到尾);它只需要CoreAnimation处理大量数据。这很好,除了

CGFloat是一种浮点设备(IIRC,它是Mac OS X上的双精度)。这意味着它可以表示高达224个整数(约1670万),因此半整数高达800万个左右(“视网膜显示器”有一半大小的像素)。如果用户滚动太远,那么您将失去准确性。我不确定这到底发生在哪里。您可以尝试将contentSize和contentOffset设置为非常大的值,看看会发生什么

如果您确实需要UIDatePicker样式的“永久”滚动,您有几个选项:

  • 实现你自己的。这并不太难,性能也不会那么差(我想您会得到一个scrollViewDidScroll:Callbackper-frame)
  • 使内容大小“足够大”(大约100万,但注意它应该是页面大小的倍数)和中间的某个内容偏移。当用户停止滚动时,将contentOffset重置为中间值:
    • ScrollViewDiEndDraging:WillDecreate:
      (但仅当
      Decreate==NO
      时)
    • ScrollViewDiEndDecelling:
    • ScrollViewDiEndScrollingAnimation:
    • scrollViewDidScrollToTop:
      (可能;我不确定它是否也发送scrollViewDidEndScrollingAnimation:)
这意味着,如果用户真的很努力的话,他们可以触底反弹(一百万个iPhone“点数”约为160米)。哦,好吧