【问题标题】:Detecting when user lifts finger off UIScrollView检测用户何时将手指从 UIScrollView 上移开
【发布时间】:2015-09-27 19:12:49
【问题描述】:

我想检测用户在滚动时何时在UITableView 中抬起手指,所以在UIScrollView 委托方法scrollViewDidScroll:

func scrollViewDidScroll(scrollView: UIScrollView)
{
    // Some code…


    if scrollView.panGestureRecognizer.state == .Ended
    {
        NSLog("ENDED")
    }
}

对我来说这听起来应该可行,所以当我进一步调查并记录此时发生的状态时,仅有的两个日志是 ChangedPossible

据我了解,如果手势结束,Ended 应该在可能之前发生。

苹果文档:

手势识别器接收到被识别为连续手势结束的触摸。它在运行循环的下一个周期发送其操作消息(或多个消息)并将其状态重置为 UIGestureRecognizerStatePossible。

这里到底发生了什么?当用户在滚动过程中将手指从我的UITableView 上移开时,我如何找到?

【问题讨论】:

    标签: ios uiscrollview uipangesturerecognizer


    【解决方案1】:

    好的,所以scrollViewDidEndDragging:willDecelerate: 不会在滚动视图未被拖动时触发,实际上是在用户抬起手指时触发。这是Ended 被触发的地方。

    【讨论】:

      【解决方案2】:

      您可以通过实现-scrollViewDidEndDragging:willDecelerate: UIScrollViewDelegate 方法来确定手指何时抬起。无需检查底层手势识别器的状态。

      【讨论】:

      • 是的,刚刚发现了困难的方法,哈哈。哦,好吧,我怪方法名称不清楚
      猜你喜欢
      • 2019-05-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-23
      相关资源
      最近更新 更多