低于一定速度时停止滚动视图动画

Posted

技术标签:

【中文标题】低于一定速度时停止滚动视图动画【英文标题】:stopping scrollview animation when below a certain speed 【发布时间】:2011-10-05 13:33:26 【问题描述】:

我有一个带有 UIScrollView 的应用程序。在 scrollView 我有多个选项卡。我想向下拖动每个选项卡,以便在这些选项卡上显示另一个视图。

问题是,当 uiscrollview 仍在滚动时,我无法向下拖动选项卡。 这个想法是让滚动视图在减速率低于一定速度时停止移动,这样我就可以更早地访问选项卡,这样用户就不必等待了。

有没有人知道如何在一定的减速速度或以下时停止 uiscrollbar 的减速(完全停止滚动条移动)?

您的帮助将不胜感激。

//---为清楚起见进行了编辑---//

【问题讨论】:

【参考方案1】:
#define SCROLL_DECELERATION_FACTOR 2.0 

- (void)viewDidLoad

    [super viewDidLoad];

    float decel = UIScrollViewDecelerationRateNormal - (UIScrollViewDecelerationRateNormal - UIScrollViewDecelerationRateFast)/SCROLL_DECELERATION_FACTOR;
    self.scrollView.decelerationRate = decel;


- (void)scrollViewDidScroll:(UIScrollView *)scrollView




- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView





- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView





- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate


   scrollView.userInteractionEnabled = NO;



- (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView





- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView


    scrollView.userInteractionEnabled = YES;

【讨论】:

这确实使减速率更快,但我希望它停止。立即。此功能还使用户的滚动不太舒服。这里的问题是标签在滚动条停止移动之前不会做出反应。 感谢您的想法,但我不想在 UIScrollView 移动时访问选项卡。我只希望在滚动视图完全停止移动时可以访问可见的选项卡。默认的滚动视图需要很长时间才能停止移动,它在开始时的滚动速度很好,我想保持这个速度,直到它达到某个速度以下。当它达到那个速度时,它需要停止移动(就像一个快照,但不像分页等)。滚动时记录速度很容易,但我无法在需要时停止。【参考方案2】:

How to know exactly when a UIScrollView's scrolling has stopped?

这个问题导致了这里的答案。不过还是谢谢你的努力

【讨论】:

以上是关于低于一定速度时停止滚动视图动画的主要内容,如果未能解决你的问题,请参考以下文章

当另一个 UIScrollView 滚动时停止动画 UIScrollView

停止 Qt QGraphicsView 在重新调整大小时滚动

如何将滚动动画从一个uiscrollview“传输”到另一个

如何在滚动视图中使 UIImage 低于 UILabel 或 UITextView

滚动视图滚动时如何播放取决于滚动视图滚动速度的声音?

当 UITableView 开始滚动时,动画视图