iOS:什么速度阈值使平移手势轻弹?
iOS: What velocity threshold makes a pan gesture a flick?
在 iOS 中处理 UIPanGestureRecognizer 时,可在此处找到的指南
和
https://material.io/guidelines/patterns/gestures.html#gestures-drag-swipe-or-fling-details
建议使用速度 属性 来区分普通拖动与滑动或 flick/fling。它没有说什么是典型的阈值。举个例子,假设我们正在 iOS 屏幕上拖动缩略图(44x44 点)。撇开微调不谈,超过什么速度 y 值你会认为平移手势是 flick/fling?
上下文:我正在尝试在 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 中处理 UIPanGestureRecognizer 时,可在此处找到的指南
和
https://material.io/guidelines/patterns/gestures.html#gestures-drag-swipe-or-fling-details
建议使用速度 属性 来区分普通拖动与滑动或 flick/fling。它没有说什么是典型的阈值。举个例子,假设我们正在 iOS 屏幕上拖动缩略图(44x44 点)。撇开微调不谈,超过什么速度 y 值你会认为平移手势是 flick/fling?
上下文:我正在尝试在 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
}
}