UITableView的W /寻呼和势头(UITableView w/ paging & momen

2019-09-01 09:26发布

意见

我发现如何UITableViews / UIScrollViews在Objective-C的iOS滚动你举起你的手指后,一些“奇怪”的事情:

  • 滚动视图的“速度”(如在scrollViewWillEndDragging:withVelocity:targetContentOffset:不是基于时间而是基于在“呈现”或“帧刷新”等; 即,在3.0“速度”是指,滚动视图将在下次刷新,在该点它将滚动又一3.0点如果“速度”仍然是3.0之前3.0滚动点。 (对比于绝对基于时间的速度)

  • “刷新”大约发生。 每秒950次,但是这个变化而且没有可靠。 (同样,相对于绝对的基于时间的刷新率)

  • 因为UIScrollViews减速指数地而不是直线, decelerationRate是几何常数。 这意味着,在滚动视图的每一个“刷新”,其“速度”设置为以前的速度时代的“减速度”。

  • 在某些时候,滚动视图的速度足够接近于零,它停止滚动。 我不知道这个门槛是什么呢。


所需的行为/问题

我得到的是理论上可以解决调整减速度,使滚动视图可以用气势自然滚动,并解决足够接近的表视图单元格的顶部模仿式“寻呼”。 (我也有一个动画添加到scrollViewDidEndDragging:willDecelerate:调整内容微创偏移调整内容偏移W / O调节decelerationRate看起来奇怪;滚动视图或者向前跳到或突然向后蹒跚。)

该方程为:A d ^ N + B d + C = 0,其中d = decelerationRate 。 理想情况下,我想在d(N,A,B,C)的形式的东西,但我的数学博士的朋友告诉我,这不是确定性可能。 他指着我对以下页面: http://en.wikipedia.org/wiki/Root-finding_algorithm

我还发现,我不能动画滚动视图到预定内容偏移使用动画风格UIViewAnimationCurveEaseOut因为setContentOffset:animated:不带一个options:参数。 否则,我将“假”滚动到我的预先计算的内容偏移。

(我发现这对SO,但它并没有为我工作: ?与非线性动画的UIScrollView setContentOffset )

我想使用一个表视图,因为我所有的在我的滚动视图元素将细胞基本上和表视图是最好的显示单元的列表。 但是,根据我的困难让我期望的行为,我可能只是做一个分页滚动视图,这可能会比较容易。 然后我就可以限制“细胞”在我的自定义“表视图”看得见的数量,否则他们事后根据需要加载。


你有什么想法/想法/建议?

到目前为止,我还没有发现的,我想什么现有的例子。


插图

要么

Answer 1:

因此经上#iphonedev IRC通道中表露无疑,但辉煌的用户得到这个答案!

从内scrollViewWillEndDragging:withVelocity:targetContentOffset:你可以重新设置targetContentOffset,无论你通过的愿望*targetContentOffset = newTargetOffset; ! 令人难以置信的是简单而优雅。

我的错误是试图调用[scrollview setContentOffset:newTargetOffset animated:YES]从内部scrollViewWillEndDragging:withVelocity:targetContentOffset:它并没有在所有的工作,因此,我开始更令人费解的方式,也“解决”我的问题没有在所有的工作。



文章来源: UITableView w/ paging & momentum