2012-11-16 20 views

Odpowiedz

12

Widok nie może zostać dotknięty, chyba że userInteractionEnabled jest YES dla widoku i wszystkich jego superwizytów do obiektu UIWindow.

Możesz utworzyć podklasę o numerze UIView, która będzie zawierać przycisk i sprawi, że zignoruje dotknięcia poza przyciskiem, przesłonięcie hitTest:withEvent:. Przykład:

@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

To nie pomoże, jeśli w widoku głównym znajduje się przycisk, który znajduje się tuż pod przyciskiem w swoim wyglądzie (podobnie jak w każdym menu, które otworzyło się nad jakimś super-podglądem), niż w przypadku kliknięcia przycisku w wywiadzie i wykryj tylko go, nadal będzie uruchamiał przycisk w superview. – Curnelious

+0

Świetnie, dzięki za podpowiedź zaoszczędziło mi dużo czasu – KeranMarinov

+0

Przyjemnie, zadziałało – atulkhatri