2012-11-16 115 views

回答

12

視圖無法接收觸摸,除非userInteractionEnabledYES,視圖及其所有超級視圖爲UIWindow對象。

您可以使UIView的子類包含按鈕,並通過覆蓋hitTest:withEvent:忽略按鈕外的觸摸。例如:

@interface MyView : UIView 

@property (nonatomic, strong) IBOutlet UIButton *button; 

@end 


@implementation MyView 

- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event { 
    UIView *subview = [super hitTest:point withEvent:event]; 
    return subview == self.button ? subview : nil; 
} 

@end 
+0

這不會幫助,如果有在上海華,這是對在其下的子視圖按鈕一個按鈕(像上面有的上海華打開任何菜單)比,如果你打一個的子視圖和只檢測他,它仍然會觸發超級視圖中的按鈕。 – Curnelious

+0

太好了,謝謝你的提示爲我節省了很多時間 – KeranMarinov

+0

不錯的一個,它的工作 – atulkhatri