关于subview响应父view手势的解决方法

本文介绍了如何防止iOS应用中,子视图(subview)响应父视图的手势。提供了三种解决方案:1. 将子视图添加到其他视图上;2. 子视图添加空手势;3. 利用手势识别器的代理方法阻止子视图响应。通过这些方法,可以确保只有父视图能够响应手势操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先声明,本人是菜鸟级初学者,对于很多问题都还不懂,欢迎各位批评指正。


在我们码UI的过程中,经常会遇到各种各样的问题,比如这样一种情况:我只要父view有个响应手势,却不希望添加在父view上的subview响应,现在我就是要讲的这个问题。

解决办法有三种:

1.把subview加在其他的view上。

  只要能摆在同样的位置,且没有什么其他问题的话,这个也是一个可行的办法;

2.将subview也添加一个手势。

给subview也加个手势,手势的响应方法里面为空,什么都不写,这样也行。

3.处理手势的代理方法。

这个就比较专业一点了,手势是有代理方法的,先设置代理:


tapP.delegate = self;


然后实现代理的这个方法


- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch

根据touch.view是不是父view,是的话返回YES,不是返回NO。

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch

{

    if([touch.view isEqual:pView]){

        return YES;

    }

    return NO;

}



这样的话就行了,希望能解决各位的问题。








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值