0

设想:

使用重用的页面视图水平滚动 UIScrollView(因此只有少数页面视图控制器像 UITableView 单元格一样被重用)。为了使它们能够更新新内容并重复使用,我需要知道 UIScrollView 内容视图的确切位置(偏移量)。这很好用。

现在我需要实现自定义滚动动画 - 我的意思是以编程方式移动内容视图,以便用户触摸一些按钮,并且滚动视图使用此自定义动画滚动到所需位置。运动可以非常快而且非常远。我不能为此使用核心动画,因为我无法在动画期间跟踪位置(CA 报告您只报告运动的开始和结束)。所以我决定使用CADisplayLink,并计算每个位置的每个 UIScrollView 内容。这也很好用。

唯一的问题是,有时我会看到频闪效应- 比如说我将内容向右移动,看起来它正在向左移动。如果我使用setContentOffset:animated:查看 UISCrollView 中的内置动画,则动画流畅且美观。有谁知道,如何摆脱这种频闪效应?

4

1 回答 1

0

您的问题很可能是时间戳是 adouble并且您将其分配给 afloat

浮点数有 7 位,而双打有 15-16 位。

因此,换句话说,您正在经历数据丢失。通过使用 double 你应该看到一个丝般平滑的动画。

于 2013-09-12T06:53:53.353 回答