首页 > 解决方案 > ScrollView.contentOffset.y 不能移动小于 0.333 像素

问题描述

我正在尝试创建一个提词器。基本上是自动滚动scrollView

scrollView.contentOffset.y每 X 次移动 1 点/像素。

我为用户提供了减慢动画速度的选项,我想通过移动更少的点来做到这一点,而不是增加调用每个像素移动所需的时间。

但我不能将点大小减小到小于 0.3333。当要求移动 0.2 时,它向上舍入为 0.333,0.1 向下舍入为 0,所以我得到 0 移动。为什么会这样,我该如何改变它?

标签: iosswiftscrollviewcontentoffset

解决方案


偏移量以点为单位。在 3x 设备上,单个像素为 0.3333 点。显然你不能滚动部分像素。

一种有效解决此问题的解决方案是让您保留自己的偏移值,您可以以较小的值递增。然后用你自己的运行值更新滚动视图的偏移量。不要尝试在滚动视图的偏移量中添加 0.1 或 0.2 之类的值。增加您自己的值并更新滚动视图的偏移量。当然,滚动视图的实际移动不会像您的小更新那样精细,但整体滚动会更慢。


推荐阅读