低于一定速度时停止滚动视图动画
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“传输”到另一个