在iOS中处理UIPanGestureRecognizer时,请参阅此处的指南
和
https://material.io/guidelines/patterns/gestures.html#gestures-drag-swipe-or-fling-details
建议使用velocity属性来区分正常拖动与滑动或轻弹/轻弹。它没有说明典型的门槛是什么。例如,假设我们在iOS屏幕上拖动缩略图(44x44点)。除了微调速度y值,你会认为平移手势是轻弹/甩动吗?
背景信息:我正试图在iPhone X上实现您在iOS 11中看到的iOS行为,在该栏上向上滑动将应用程序转换回其主页图标,除了我在其上执行此操作细胞被扔回UICollectionView。
答案 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
}
}