【发布时间】:2017-06-10 14:33:26
【问题描述】:
在 iOS 上的现代用户界面中,在单个视图上实现多个 UIGestureRecognizer 通常很有用,以便为模拟现实世界的显示对象提供更真实的行为。
例如,您可能希望既能在屏幕上拖动视图,又能用两根手指旋转它。
UIGestureRecognizerDelegate 为此提供了一个可选函数shouldRecognizeSimultaneouslyWith。返回true 可以避免一次只有一个手势生效:
// MARK: - UIGestureRecognizerDelegate
extension GestureController: UIGestureRecognizerDelegate {
func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWith otherGestureRecognizer: UIGestureRecognizer) -> Bool {
return true
}
}
但是,当多个手势识别器处于活动状态时,尤其是UIRotationGestureRecognizer,当处理程序不断地相互覆盖时,发现视图行为异常可能会令人沮丧。
如何实现多个手势识别器以提供流畅的行为?
【问题讨论】:
标签: ios swift uigesturerecognizer uipangesturerecognizer