UItouch事件被tableview攔截

最近做項(xiàng)目用到了手寫(xiě)簽名的功能,手寫(xiě)簽名的view是通過(guò)UItouch相關(guān)方法畫(huà)線實(shí)現(xiàn)的,因?yàn)轫?yè)面UI是列表形式,手寫(xiě)簽名view 需要添加到tableview的footview上,這個(gè)時(shí)候就出現(xiàn)了問(wèn)題,手寫(xiě)簽名view的touch被tableview攔截了,這個(gè)時(shí)候再去操作view 簽名的時(shí)候 是不能成功呢,而且頁(yè)面會(huì)滾動(dòng)。 下面我記錄一下我的處理方式
1.一開(kāi)始我以為像網(wǎng)上的方式,給tableview創(chuàng)建一個(gè)子類然后引入touch 方法:
refer https://blog.csdn.net/qq_42839789/article/details/81501832
但是view的touch 會(huì)覆蓋tableviewtouch 并不能解決問(wèn)題。
2.這個(gè)時(shí)候我想到hittest 方法通過(guò)事件響應(yīng)機(jī)制,判斷觸摸的view是不是簽名view 如果是讓tableview暫時(shí)停止?jié)L動(dòng),如果不是正常滾動(dòng)。
具體實(shí)現(xiàn)如下:

#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區(qū)域
    if ([viewReturn isKindOfClass:[HJSignatureView class]]) {
        self.scrollEnabled = NO;
        return viewReturn;
    }else{
        self.scrollEnabled = YES;
    }
    //不在touchView區(qū)域,正常操作
    return viewReturn;
}
@end
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容