我已经在我的应用中出现了两个地方的自定义UIView
。它首先出现在常规视图控制器中,同时显示text view
,然后UIView
上的点击动作移动到另一个view controller
,其中custom UIView
被放大显示。我想为放大的UIView
设置不同的点击手势,但是当我尝试将其放入storyboard
时,第一个点击手势停止工作(因为新的点按手势只能通过第一个点击触及手势是新的视图控制器,我无法看到它是否有效。
将第二个UITapGestureRecognizer
添加到视图会导致第一个变为无效吗?我没有看到任何其他原因导致问题。如果是这样,我是否需要为两个不同的自定义UIViews创建单独的类?我试图避免这种情况,因为他们只是以不同的尺寸显示相同的东西,但似乎不同的敲击手势可能会导致问题。
答案 0 :(得分:0)
在不同的地方添加不同的UITapGesture
。
<强>视图1 强>
UITapGestureRecognizer *recognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTapBehind1:)];
[recognizer setNumberOfTapsRequired:1];
recognizer.cancelsTouchesInView = NO;
[View1 addGestureRecognizer:recognizer];
<强>视图2 强>
UITapGestureRecognizer *recognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTapBehind2:)];
[recognizer setNumberOfTapsRequired:1];
recognizer.cancelsTouchesInView = NO;
[View2 addGestureRecognizer:recognizer];
View1句柄点击方法
- (void)handleTapBehind:(UITapGestureRecognizer *)sender
{
if (sender.state == UIGestureRecognizerStateEnded)
{
[View1 removeGestureRecognizer:sender];
}
}
View2句柄点击方法
- (void)handleTapBehind:(UITapGestureRecognizer *)sender
{
if (sender.state == UIGestureRecognizerStateEnded)
{
[View2 removeGestureRecognizer:sender];
}
}