拖动后取消 UIScrollView 弹跳

Cancel UIScrollView bounce after dragging(拖动后取消 UIScrollView 弹跳)
本文介绍了拖动后取消 UIScrollView 弹跳的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

我有一个水平的 UIScrollView.我想做一个pull-to-reset"动画的变体,我一直拉到滚动视图内容大小的右边缘,松开手指,让滚动视图飞回 (0, 0) 内容偏移量.

I have a horizontal UIScrollView. I want to do a variation of the "pull-to-reset" animation, where I pull all the way past the right edge of the scroll view's content size, release my finger, and have the scroll view fly back to (0, 0) content offset.

我的委托方法如下所示:

My delegate method looks like this:

- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate {
    //check if it exceeds a certain critical value
    if (scrollView.contentOffset.x - (scrollView.contentSize.width - IMAGE_WIDTH) > 80) {
        [self doAnimatedScrollTo:CGPointMake(0, 0)];
    }
}

其中 doAnimatedScrollTo: 是一个必要的自定义动画方法,因为我想控制动画的持续时间.

where doAnimatedScrollTo: is a custom animation method necessary because I want to control the duration of the animation.

虽然这有效,但动画似乎已排队.UIScrollView反弹"动画首先发生,然后我的动画发生.

While this works, it seems that the animation is queued up. The UIScrollView "bounce" animation happens first, then my animation occurs.

有没有办法取消反弹动画,保持内容偏移从捕捉"回来,然后执行我的动画?

Is there a way to cancel the bounce animation, keep the content offset from "snapping" back, and then perform my animation?

推荐答案

试试这个

- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate {
  //check if it exceeds a certain critical value
  if (scrollView.contentOffset.x - (scrollView.contentSize.width - IMAGE_WIDTH) > 80) {
    [scrollView setContentOffset:CGPointMake(0, 0) animated:YES];
  }
}

这篇关于拖动后取消 UIScrollView 弹跳的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

UIButtons at the bottom of UIScrollView not working(UIScrollView 底部的 UIButtons 不起作用)
scrollViewWillEndDragging:withVelocity:targetContentOffset: not working on the edges of a UISCrollView(scrollViewWillEndDragging:withVelocity:targetContentOffset: 不在 UISCrollView 的边缘工作)
ImageView Scaling when scrolling down(向下滚动时 ImageView 缩放)
Bounds automatically changes on UIScrollView with content insets(UIScrollView 上的边界自动更改,带有内容插图)
iOS5 UITapRecognizer for UIScrollView interfering with buttons. How to fix?(用于 UIScrollView 的 iOS5 UITapRecognizer 干扰按钮.怎么修?)
Handling scroll views with (custom, interactive) view controller presentation and dismissal(使用(自定义、交互式)视图控制器呈现和解除处理滚动视图)