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

时间:2018-01-24 06:43:35

标签: 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

建议使用velocity属性来区分正常拖动与滑动或轻弹/轻弹。它没有说明典型的门槛是什么。例如,假设我们在iOS屏幕上拖动缩略图(44x44点)。除了微调速度y值,你会认为平移手势是轻弹/甩动吗?

背景信息:我正试图在iPhone X上实现您在iOS 11中看到的iOS行为,在该栏上向上滑动将应用程序转换回其主页图标,除了我在其上执行此操作细胞被扔回UICollectionView。

1 个答案:

答案 0 :(得分:2)

经过一些研究后,我发现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
    }
}