iOS子视图屏蔽父视图手势
2019-10-25 本文已影响0人
智人一千
这几天在同事代码上改点东西,增加了一个弹框,弹框是一个密码输入页面,如下图
弹框页面
该页面我未添加任何手势,可当点击背景时键盘收起了!需求是不要求键盘收起;
检查发现父view上添加了点击关闭键盘手势;
由于弹框加父视图上,所以也响应了父视图手势。
- (void)keyboardDown
{
[self.view endEditing:YES];
}
很显然这种情况应该屏蔽父视图手势,方法很简单,在手势的代理方法里做个限制就行;
#pragma mark - UIGestureRecognizerDelegate
-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
{
if ([touch.view isDescendantOfView:self.viewWalletPay]) {//屏蔽父视图在子视图手势
return NO;
}
return YES;
}
注意self.viewWalletPay是弹框对象,上面判断的意思是:添加在子视图对象上的控件屏蔽手势,满足需求。