objective-c - 为什么我向同一个方向快速滑动两次时,UIScrollView 会剧烈滚动?

标签 objective-c ios uiscrollview uiscrollviewdelegate

在 UIScrollview 中水平滚动时,如果我在同一方向快速滑动两次, ScrollView 会剧烈跳动。有什么办法可以防止这种情况发生吗?为了详细解释,这里有一个来自 ScrollView 的事件日志,在大多数委托(delegate)方法中,我只打印 x 坐标。

scrollViewWillBeginDragging:
    14:55:12.034 Will begin dragging!
    14:55:12.037 - Position -0.000000
scrollViewWillBeginDeceleration:
    14:55:12.129 Deceleration rate 0.998000
    14:55:12.152 + Position 314.000000
scrollViewWillBeginDragging:
    14:55:12.500 Will begin dragging!
    14:55:12.522 - Position 1211.000000
scrollViewWillBeginDeceleration:
    14:55:12.530 Deceleration rate 0.998000
    14:55:12.533 + Position 1389.000000
scrollViewDidScroll: (printing values < 0 && > 6000 (bounds.size.width)
    14:55:12.595 !!! Position 7819.000000
    14:55:12.628 !!! Position 9643.000000
    14:55:12.658 !!! Position 10213.000000
    14:55:12.688 !!! Position 10121.000000
    14:55:12.716 !!! Position 9930.000000
    ... contentoffset.x drops with around 400 each scrollviewdidscroll call ...
    14:55:13.049 !!! Position 6508.000000
scrollViewDidEndDecelerating:
    14:55:13.753 Will end deceleration
    14:55:13.761 * Position 6144.000000

日志中最值得注意的事情是在 scrollViewWillBeginDeceleration 之后,contentoffset.x 在几毫秒内跳跃了约 6000 点。

实现

uiscrollview 和 uiscrollviewdelegate 在同一个类中,是 uiscrollview 的子类,它也实现了 uiscrollviewdelegate 协议(protocol),没有对 contentoffset 做任何特殊处理,在 scrollview 上设置的唯一属性是:

    self.showsHorizontalScrollIndicator = YES;
    self.scrollsToTop = NO;
    self.delegate = self;

ScrollView subview 从托管 uiscrollview 的 uiviewcontroller 中的 viewwillappear 调用添加一次(并且 contentSize 已适当设置)。滚动,稍等片刻,然后再次滚动完美无缺。

最佳答案

在您需要的方向上设置 ScrollView 以及您想要滚动的坐标并使用与XIB的正确连接然后它将工作很好。

关于objective-c - 为什么我向同一个方向快速滑动两次时,UIScrollView 会剧烈滚动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6873707/

相关文章:

objective-c - 使用 Array 观察键值不做任何事情

iphone - iPhone 中的 UITableView 具有大量(可能有 100 万个条目)数据

ios - 使用特征更改约束乘数

iphone - iOS:在不添加新 View 的情况下在 UIScrollView View 之间切换?

ios - 在分页 UIScrollView 中缩放图像

iphone - 在 uitableview 中禁用弹跳也会禁用 iOS 5 上的滚动,但不会禁用 iOS4

ios - Xib之间如何传递视频?

ios - 如何在 iOS 中搜索姓名列表?

ios - 将 UICollectionViewCell 连接到一个简单的 View Controller 标题

ios - 分页 UIScrollView "Prototype Pages"