设想:
使用重用的页面视图水平滚动 UIScrollView(因此只有少数页面视图控制器像 UITableView 单元格一样被重用)。为了使它们能够更新新内容并重复使用,我需要知道 UIScrollView 内容视图的确切位置(偏移量)。这很好用。
现在我需要实现自定义滚动动画 - 我的意思是以编程方式移动内容视图,以便用户触摸一些按钮,并且滚动视图使用此自定义动画滚动到所需位置。运动可以非常快而且非常远。我不能为此使用核心动画,因为我无法在动画期间跟踪位置(CA 报告您只报告运动的开始和结束)。所以我决定使用CADisplayLink,并计算每个位置的每个 UIScrollView 内容。这也很好用。
唯一的问题是,有时我会看到频闪效应- 比如说我将内容向右移动,看起来它正在向左移动。如果我使用setContentOffset:animated:查看 UISCrollView 中的内置动画,则动画流畅且美观。有谁知道,如何摆脱这种频闪效应?