iOS:啥速度阈值使平移手势成为轻弹?
Posted
技术标签:
【中文标题】iOS:啥速度阈值使平移手势成为轻弹?【英文标题】:iOS: What velocity threshold makes a pan gesture a flick?iOS:什么速度阈值使平移手势成为轻弹? 【发布时间】:2018-01-24 06:43:35 【问题描述】:在 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。
【问题讨论】:
【参考方案1】:在做了一些研究后,我发现 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
【讨论】:
每秒点数,请阅读文档developer.apple.com/documentation/uikit/uipangesturerecognizer/…以上是关于iOS:啥速度阈值使平移手势成为轻弹?的主要内容,如果未能解决你的问题,请参考以下文章