2014-09-30 66 views
0

我有一個MainViewController(A)和另一個DetailedViewController(B)作爲它的子視圖。在「B」中,我有一個包含UIButton,UILabel和一些UIViews等UIControl的UIView。忽略UIView上除了按鈕上的觸摸事件。

我需要忽略此UIView中的所有觸摸事件,除了按鈕單擊和我必須刪除子視圖,如果單擊UIView外部。

我該如何做到這一點?

回答

0

一個選項可能是在詳細視圖控制器中設置自定義視圖。 在該視圖中,您可以覆蓋hittest功能。

- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event 
{ 
    UIView *resultView = [super hitTest:point withEvent:event]; 

    if (![resultView isKindClass:[UIButton class]]) 
    { 
     resultView = nil; 
    } 

    return resultView; 
} 

不按鈕上的按鈕將被忽略。但是,如果您有一個滾動視圖,並且您將開始拖動按鈕,滾動視圖將被忽略。