通過實例講解,如圖(三個深灰色按鈕處於同一個contentView中):
懸浮的三個按鈕下方有一個可以點擊的灰色區域,但是點擊按鈕之間的透明區域,
這三個按鈕的contentView會響應這個點擊事件,這時候需要讓這個contentView不響應這個點擊事件。
解決方法如下(將此方法增加到這個contentView類中即可):
- (UIView*)hitTest:(CGPoint)point withEvent:(UIEvent *)event{ UIView *hitView = [super hitTest:point withEvent:event]; if(hitView == self){ return nil; } return hitView; }
查看這個方法相關的描述,如下:
返回值:
返回 farthest descendent (最后一級子視圖) ,在這個例子里面返回的也就是懸浮的按鈕。
返回 nil,就可以讓這個contentView無視這個點擊事件,也就將這個點擊事件傳了出去。
Ficow原創,轉載請注明出處:http://www.cnblogs.com/ficow/p/5936288.html