当我点击UIButton
时,屏幕底部会显示UIView
MyView屏幕的三分之一。我希望当我点击这个视图之外的某个地方时,它会消失。
我考虑在MyView下添加另一个透明的UIView
并在其上添加一个带有解除功能的标签手势,但我确定有比这更清晰的东西。
所以我考虑添加点击手势MyTapGesture来解除self.view
UIViewController
上的MyView。问题是在这个视图之外,我还有其他UIControls
和手势,它们同时捕获任何触摸,而不是MyTapGesture。
如何让MyTapGesture成为MyView外部的优先手势并忽略所有其他手势,点击等......?
答案 0 :(得分:1)
您可能必须使用手势委托方法来处理两个tapGestureRecognizer
根据场景激活您需要的方法
#pragma mark - UIGestureRecognizerDelegate methods
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer {
return YES;
}
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
if ([tapGestureRecognizer1 isEqual:gestureRecognizer]) {
return [tapGestureRecognizer2 isEqual:otherGestureRecognizer];
}
if ([tapGestureRecognizer2 isEqual:gestureRecognizer]) {
return [tapGestureRecognizer1 isEqual:otherGestureRecognizer];
}
return NO;
}