电池专业版充电屏保页面增加手势后 如何使一部分区域不响应

本文探讨了在iOS应用中如何自定义UIView的手势交互逻辑,特别关注于在特定区域禁用手势响应的方法。通过引入按钮控件作为遮挡元素,并在hitTest方法中进行判断,实现对手势事件的灵活控制。

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

- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event

{

    CGRect myRectUp = [selfconvertRect:CGRectMake(0,0, 28, 85)fromView:self];

    CGRect myRectDown = [selfconvertRect:CGRectMake(0,85+62, 28,GNDEVICE_SCREEN_HEIGHT-85-28)fromView:self];

    if (CGRectContainsPoint(myRectUp, point) ||CGRectContainsPoint(myRectDown, point) || (pullOffButton.hidden ==YES)) {

        self.userInteractionEnabled =NO;

    } else {

        self.userInteractionEnabled =YES;

    }

    UIView *result = [superhitTest:point withEvent:event];

    return result;

}






还有一个朋友提出一种解决办法 ,就是可以在不需要响应手势的区域加上别的控件,例如UIButton,然后用下面的方法来弄,但不知道什么原因,我这样弄并不管用:

- (UIView*)hitTest:(CGPoint)point withEvent:(UIEvent *)event
{
  UIView* result = [super hitTest:point withEvent:event];
 
  if ([result isKindOfClass:[UIButton class]])
  {
    self.scrollEnabled = NO;
  }
  else
  {
    self.scrollEnabled = YES;
  }
  return result;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值