ios - ScrollView.contentOffset.y 不能移动小于 0.333 像素
问题描述
我正在尝试创建一个提词器。基本上是自动滚动scrollView
。
我scrollView.contentOffset.y
每 X 次移动 1 点/像素。
我为用户提供了减慢动画速度的选项,我想通过移动更少的点来做到这一点,而不是增加调用每个像素移动所需的时间。
但我不能将点大小减小到小于 0.3333。当要求移动 0.2 时,它向上舍入为 0.333,0.1 向下舍入为 0,所以我得到 0 移动。为什么会这样,我该如何改变它?
解决方案
偏移量以点为单位。在 3x 设备上,单个像素为 0.3333 点。显然你不能滚动部分像素。
一种有效解决此问题的解决方案是让您保留自己的偏移值,您可以以较小的值递增。然后用你自己的运行值更新滚动视图的偏移量。不要尝试在滚动视图的偏移量中添加 0.1 或 0.2 之类的值。增加您自己的值并更新滚动视图的偏移量。当然,滚动视图的实际移动不会像您的小更新那样精细,但整体滚动会更慢。
推荐阅读
- javascript - 提示存储问题
- java - 有没有办法有效地比较任意对象的字段
- glsl - 如何在 WGSL 着色器中重复纹理?
- python - 树莓派终端一直说有一个语法错误,只是指向我外壳顶部的“Python 3.5.3”
- html - Flexbox 内的 Flexbox(滑块)
- java - 如何检查一个字符串是否包含一系列相等的符号,这些符号等于同一字符串中的另一个符号序列?(JAVA)
- javascript - 如何在 P5js/JavaScript 中按名称循环函数
- ruby-on-rails - rails未登录用户登录后查看他们的帖子
- r - RStudio 中的目录名称无效
- kubernetes - 我的旧 Windows pod 已死,不响应 http 请求/执行失败