我在iOS应用程序上有一个视图,里面有一个mapView。
添加点按或长按识别器时,会正确调用事件。
但不是捏事件......
UIPinchGestureRecognizer *handlePinchGesture=[[UIPinchGestureRecognizer alloc]initWithTarget:mapView action:@selector(handleGesture:)];
[mapView addGestureRecognizer:handlePinchGesture];
知道我应该添加什么吗? 感谢。
答案 0 :(得分:2)
假设您的mapView
是MKMapView
,它有自己的捏合手势识别器,用于缩放地图。
如果要添加自己的识别器,则必须允许它与另一个(mapview控制的)识别器同时识别。设置您的手势识别器delegate
并实施gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:
(您可以随时返回YES
)。
您还应该将self
设置为手势识别器的target
,而不是mapView
。
答案 1 :(得分:1)
在handleGesture方法中你做了类似的事情:
CGFloat beginPinch; //declare this as your ivars
-(void)handleGesture:(UIPinchGestureRecognizer *)pinchRecognizer
{
if (pinchRecognizer.state == UIGestureRecognizerStateBegan)
{
beginPinch = pinchRecognizer.scale;
}
else if (pinchRecognizer.state == UIGestureRecognizerStateEnded)
{
if (pinchRecognizer.scale < beginPinch)
{
//do your stuff
}
}
}