作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一张用 OpenGLES 绘制的 map ,并且有一个平移手势识别器,其 maxNumberofTouches 设置为 1 以在 map 上平移,还有一个用于缩放的捏合手势识别器。我想在完成缩放后开始平移(一根手指离开屏幕),但是平移手势识别器不会启动,直到捏手势识别器完成(即检测到屏幕上没有手指时)。有什么想法吗?
最佳答案
可以通过委托(delegate)方法允许两个手势都处于事件状态:
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer
shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
// The two recognizers using the delegate (scale and rotate) should both be active.
//
return YES;
}
并保留一个 BOOL 来跟踪用户是否正在缩放,当该 BOOL 为 YES 时不允许执行平移手势中的代码。通过检查 TouchMoved:withEvent 方法(或者其他一些 UIGestureRegonizer 方法)中的触摸次数来更改 BOOL 值。
我认为这应该可行,我在允许缩放、旋转和拖动的应用程序中做了类似的事情,其中仅当用户不缩放/旋转时才允许拖动。
~祝你好运
关于ios - 如何从一个手势识别器转到另一个手势识别器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8721494/
我是一名优秀的程序员,十分优秀!