gpt4 book ai didi

ios - 如何计算 UIScrollView 结束拖动所需的时间?

转载 作者:行者123 更新时间:2023-11-29 10:36:11 25 4
gpt4 key购买 nike

这是我需要使用的委托(delegate)方法:

- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset

这是我所做的(我只对 Y 轴感兴趣):

- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset
{
CGFloat distanceY = targetContentOffset->y - scrollView.contentOffset.y;

CGFloat time = distanceY / velocity.y;
}

不幸的是,它不起作用,因为速度不是以点为单位测量的。它记录的值介于 -5.0 和 +5.0 之间,但我就是不明白。

有什么想法吗?

最佳答案

实际上,我前几天刚试过这个确切的问题。在 Excel 中尝试和使用 XY 图后,我想出了以下多项式公式,通常给出的结果非常接近。

NSTimeInterval scrollDuration = velocity.y * velocity.y * -0.0190848 + velocity.y * 0.30489632 + 2.098846;

这似乎适用于 0.5 或更高的速度。

这还假设 ScrollView 的 decelerationRate 设置为默认值 UIScrollViewDecelerationRateNormal

关于ios - 如何计算 UIScrollView 结束拖动所需的时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26965085/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com