将 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
了解详情。
为了测试(和屏幕截图),我使用 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
了解详情。