将 UIScrollView 的滚动速度减半?

Halve scroll speed for UIScrollView?

为了测试(和屏幕截图),我使用 layer.speed 全局减慢动画速度。

window.layer.speed = 0.5

然而这只能控制动画,我不能控制UIScrollView速度。有什么(undocumented/private)方法可以将滚动视图的减速速度减半

I'm aware of UIScrollView.decelerationRate, yet it seems only work with the .normal and .fast values. I'm interested in slowing it down.

您可以使用原始值初始化程序将任何值设置为 decelerationRate

scrollView.decelerationRate = .init(rawValue: 0.998)

这不适用于分页 UIScrollView 实例。为此,您需要设置 pagingFriction 属性.

scrollView.setValue(0.9422507685, forKey: "pagingFriction")

用于内容偏移动画(例如刷新后的动画)。

scrollView.setValue(0.6, forKey: "contentOffsetAnimationDuration")

Thanks to this awesome iOS-Headers repo.

更新:最好的事情是调整反弹减速率的调整。我无法将其放入此答案中,请参阅 UIScrollView+Extensions.swift 了解详情。