iOS:什么速度阈值使平移手势成为轻弹?

标签 ios iphone uikit uipangesturerecognizer

在 iOS 中处理 UIPanGestureRecognizer 时,可在此处找到指南

https://developer.apple.com/documentation/uikit/touches_presses_and_gestures/handling_uikit_gestures/handling_pan_gestures?language=objc

https://material.io/guidelines/patterns/gestures.html#gestures-drag-swipe-or-fling-details

建议使用速度属性来区分正常拖动和滑动或轻弹/猛击。没有任何地方说明典型的阈值是什么。举例来说,假设我们在 iOS 屏幕上拖动缩略图(44x44 点)。除了微调之外,高于什么速度 y 值,您会认为平移手势是轻弹/猛击?

上下文:我正在尝试实现您在 iPhone X 上的 iOS 11 中看到的 iOS 行为,其中向上滑动栏会将应用程序弹回到其主页图标,但我是在被弹回的单元格上执行此操作的到 UICollectionView。

最佳答案

经过一些研究,我发现 Apple 使用 300 的速度来检测 ScrollView 中的滑动。

extension TestViewController: UIScrollViewDelegate {
    func scrollViewWillBeginDecelerating(_ scrollView: UIScrollView) {
        print(scrollView.panGestureRecognizer.velocity(in: view)) // if velocity > 300, UIScrollView will scroll to next page
    }
}

关于iOS:什么速度阈值使平移手势成为轻弹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48416315/

相关文章:

ios - NSIndexPath 无法将项目、部分或行识别为属性

ios - 我的 UIButtonBarItem 's don' t 使用 FlexibleSpace 正确布局

ios - 我应该为 LaunchScreen.storyboard 中的图像提供什么尺寸的 @3x、@2x 等?

iPhone - 是否可以覆盖 UITableViewCell setSelected :animated

ios - 如何知道 View Controller 是否将呈现为弹出窗口或模式?

ios - Xcode 5.1 断点不起作用

iphone - 防止同时触摸多个按钮

ios - 运行 pod setup 后无法找到任何 Pod 的规范

iPhone,如何从照片库中读取一张图像作为 NSData?

iphone - 将图像添加到ios中的“事件”指示器中