UItouch事件被tableview拦截

最近做项目用到了手写签名的功能,手写签名的view是通过UItouch相关方法画线实现的,因为页面UI是列表形式,手写签名view 需要添加到tableview的footview上,这个时候就出现了问题,手写签名view的touch被tableview拦截了,这个时候再去操作view 签名的时候 是不能成功呢,而且页面会滚动。 下面我记录一下我的处理方式
1.一开始我以为像网上的方式,给tableview创建一个子类然后引入touch 方法:
refer https://blog.csdn.net/qq_42839789/article/details/81501832
但是view的touch 会覆盖tableviewtouch 并不能解决问题。
2.这个时候我想到hittest 方法通过事件响应机制,判断触摸的view是不是签名view 如果是让tableview暂时停止滚动,如果不是正常滚动。
具体实现如下:

#import <UIKit/UIKit.h>

@interface WYTouchTableView : UITableView

@end

#import "WYTouchTableView.h"
#import "HJSignatureView.h"
@implementation WYTouchTableView

- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event
{
    UIView *viewReturn =[super hitTest:point withEvent:event];
    //在touchView区域
    if ([viewReturn isKindOfClass:[HJSignatureView class]]) {
        self.scrollEnabled = NO;
        return viewReturn;
    }else{
        self.scrollEnabled = YES;
    }
    //不在touchView区域,正常操作
    return viewReturn;
}
@end
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。