如何在相同的图像视图上实现不同的GestureRecognizer?
我正在我的应用程序中实现旋转、缩放、点击手势识别器。我有一个图像视图,在其中获取用户图像,然后有按钮移动到图章视图,其中有 120 个 1000*100 的可滚动图章图像。问题是,当我选择一个图章图像时,手势工作正常。但是当我再次移动到图章视图并选择图章时,第一个图章变为静态并且不识别任何手势,只有当前图章识别该手势。 我正在执行的是选择多个图章,然后我可以旋转它们,拉伸它们,捏它们。 这是我正在实现的代码。请帮助我如何实现这一目标...
-(void)viewWillAppear:(BOOL)animated
{
if (stampImageView) {
[stampImageView release];
}
stampImageView=[[UIImageView alloc]initWithFrame:CGRectMake(self.view.center.x-100, 200, 80, 80)];
stampImageView.tag=(int)mAppDel.frameImageString;
NSLog(@"tag is %@",stampImageView.tag);
stampImageView.userInteractionEnabled=YES;
if(mAppDel.frameImageString)
stampImageView.image=[UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:mAppDel.frameImageString ofType:@"png"]];
[self.view addSubview:stampImageView];
stampImageView.userInteractionEnabled=YES;
[self.view bringSubviewToFront:stampImageView];
UIRotationGestureRecognizer *rotationGesture = [[UIRotationGestureRecognizer alloc] initWithTarget:self action:@selector(rotatePiece:)];
[stampImageView addGestureRecognizer:rotationGesture];
[rotationGesture release];
UIPinchGestureRecognizer *pinchGesture = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(scalePiece:)];
[pinchGesture setDelegate:self];
[stampImageView addGestureRecognizer:pinchGesture];
[pinchGesture release];
UIPanGestureRecognizer *panGesture = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(panPiece:)];
[panGesture setMaximumNumberOfTouches:1];
[panGesture setDelegate:self];
[stampImageView addGestureRecognizer:panGesture];
[panGesture release];
}
I am implementing the rotation,pich,tap gesture recognizers in my app.I have an image view where i get the user image,then there is button to move to the stamps view,where there are 120 scrollable stamp images of 1000*100.The problem is that when i choose one stampimage,the gesture works fine.But when i again move to the stamp view and choose stamp,the first one stamp become static and does not recognize any gesture,only the current stamp recognize the gesture.
What i am performing is to select multiple stamps and then i can rotate them,strech them,pinch them.
Here is the code which i am implementing.Just help me how to acheive this...
-(void)viewWillAppear:(BOOL)animated
{
if (stampImageView) {
[stampImageView release];
}
stampImageView=[[UIImageView alloc]initWithFrame:CGRectMake(self.view.center.x-100, 200, 80, 80)];
stampImageView.tag=(int)mAppDel.frameImageString;
NSLog(@"tag is %@",stampImageView.tag);
stampImageView.userInteractionEnabled=YES;
if(mAppDel.frameImageString)
stampImageView.image=[UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:mAppDel.frameImageString ofType:@"png"]];
[self.view addSubview:stampImageView];
stampImageView.userInteractionEnabled=YES;
[self.view bringSubviewToFront:stampImageView];
UIRotationGestureRecognizer *rotationGesture = [[UIRotationGestureRecognizer alloc] initWithTarget:self action:@selector(rotatePiece:)];
[stampImageView addGestureRecognizer:rotationGesture];
[rotationGesture release];
UIPinchGestureRecognizer *pinchGesture = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(scalePiece:)];
[pinchGesture setDelegate:self];
[stampImageView addGestureRecognizer:pinchGesture];
[pinchGesture release];
UIPanGestureRecognizer *panGesture = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(panPiece:)];
[panGesture setMaximumNumberOfTouches:1];
[panGesture setDelegate:self];
[stampImageView addGestureRecognizer:panGesture];
[panGesture release];
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
你尝试过使用委托方法吗
Did u try using the delegate method
我为单点触控实现了这个逻辑,但你可以在你的应用程序中使用它
I implement this logic for monotouch but you can use it in you app