2014-05-21 90 views
1

我在手势工作时遇到了一些麻烦。让我解释一下: 我得到了一个包含背景UIImageView和背景UIImageView的视图。在这个背景图像视图中,我添加了一些包含图像和按钮的UIViews,以便用户可以编辑。当他们在ImageView上编辑这些视图时,一切正常。但是,如果我开始在backgroundView上编辑这些视图,它不再工作。让显示一些图像,以帮助您理解:手势重构器不起作用

image1

编辑视图工作正常,在此

image2

不要工作

所有三个按钮了它拥有手势识别器。 这是不工作,因为视图不在超视图了?我是否必须将视图添加到self.view而不是添加到imageView才能识别每个手势?

+1

如果他们自己的上海华超出界限的意见不来触摸反应,所以你为什么猜想它不工作是正确的。 – rdelmar

+0

在这种情况下,是否有办法强制这个视图响应这个手势?因为我仍然可以移动视图,即使它不在图像视图的界限内,但按钮(关闭,调整大小和旋转)不再响应 –

+1

您可以将它移出超级视图,因为原始的触摸发生了在superview里面。如果您在超视图之外时抬起手指,是否可以再次移动它?我猜不是。据我所知,唯一的解决办法就是像你所建议的那样将这个视图添加到self.view中。 – rdelmar

回答

0

覆盖以下UIGestureRecognizerDelegate方法并确保设置了代表。听起来你一定会看到一些冲突,可以使用这些方法的一些细心的逻辑来避免:

-(BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer; 
-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer; 
-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch; 
+0

嗨,我看不出这会如何帮助我,因为当视图超出图像视图范围时,手势方法永远不会被触发。你能解释一下吗? –