0
我有一個MainViewController(A)和另一個DetailedViewController(B)作爲它的子視圖。在「B」中,我有一個包含UIButton,UILabel和一些UIViews等UIControl的UIView。忽略UIView上除了按鈕上的觸摸事件。
我需要忽略此UIView中的所有觸摸事件,除了按鈕單擊和我必須刪除子視圖,如果單擊UIView外部。
我該如何做到這一點?
我有一個MainViewController(A)和另一個DetailedViewController(B)作爲它的子視圖。在「B」中,我有一個包含UIButton,UILabel和一些UIViews等UIControl的UIView。忽略UIView上除了按鈕上的觸摸事件。
我需要忽略此UIView中的所有觸摸事件,除了按鈕單擊和我必須刪除子視圖,如果單擊UIView外部。
我該如何做到這一點?
一個選項可能是在詳細視圖控制器中設置自定義視圖。 在該視圖中,您可以覆蓋hittest功能。
- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event
{
UIView *resultView = [super hitTest:point withEvent:event];
if (![resultView isKindClass:[UIButton class]])
{
resultView = nil;
}
return resultView;
}
不按鈕上的按鈕將被忽略。但是,如果您有一個滾動視圖,並且您將開始拖動按鈕,滾動視圖將被忽略。