可以用來(lái)驗(yàn)證視圖或者控件無(wú)法響應(yīng)的一個(gè)方法

日常開(kāi)發(fā)中經(jīng)常會(huì)出現(xiàn)視圖或者控件無(wú)法響應(yīng)的情況,但是搞清楚響應(yīng)的原理就很容易查找到問(wèn)題了。
1.self.hidden = YES;
2.self.userInteractionEnabled = NO
3.self.alpha <= 0.01
4.屏幕點(diǎn)擊點(diǎn) 不包含在你需要響應(yīng)的視圖里面(這里可能是父視圖沒(méi)有frame,或者點(diǎn)擊位置超過(guò)父視圖范圍)

以上4種問(wèn)題都可以實(shí)現(xiàn)下面這個(gè)方法來(lái)直接檢測(cè)出來(lái)是否響應(yīng)

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

? ? if (self.hidden? || !self.userInteractionEnabled || self.alpha <= 0.01) {

? ? ? ? returnnil;//無(wú)響應(yīng)

? ? }

? ? if([selfpointInside:pointwithEvent:event]) {

? ? ? ? for(UIView*subViewin[self.subviewsreverseObjectEnumerator]) {

? ? ? ? ? ? CGPointconvertedPoint = [subViewconvertPoint:pointfromView:self];

? ? ? ? ? ? UIView*hitTestView = [subViewhitTest:convertedPointwithEvent:event];

? ? ? ? ? ? if(hitTestView) {

? ? ? ? ? ? ? ? returnhitTestView;//找到響應(yīng)的視圖 可以響應(yīng)

? ? ? ? ? ? }

? ? ? ? }

? ? }

? ? return nil;//不響應(yīng)

}

最后編輯于
?著作權(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ù)。

相關(guān)閱讀更多精彩內(nèi)容

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