hitTest方法的實(shí)現(xiàn)原理

  • 作用:專門來尋找最合適的view
  • 什么時(shí)候調(diào)用:當(dāng)一個(gè)事件傳遞給當(dāng)前的View時(shí)候調(diào)用.
  • 返回誰,誰就是最合適的View
    -(UIView *)hitTes:(CGPoint)point withEvent:(UIEvent *)event
    {
    //判斷自己是否能接受事件
    if (self.userInteractionEnabled == NO || self.hidden == YES || self.alpha <= 0.01)
    {
    return nil:
    }
    // 判斷當(dāng)前點(diǎn) 在不在自己身上.
    if (![self pointInside:point withEvent:event]) {
    return nil;
    }
    // 查看自己是不是最合適的view,從后往前遍歷自己的子控件.
    int count = (int)self.subviews.count;
    for (int i = count -1 ; i >= 0; i--) {
    UIView *childView = self.subviews[i];
    CGPoint childP = [self convertPoint:point toView:childView];
    UIView *view = [childView hitTest:childP withEvent:event];
    if (view) {
    return view;
    }
    }
    return self;
    }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容