Mam widok i widok.UserInteractionenabled = nie i przycisk jest dodawany do widoku. muszę tylko kliknąć przycisk. czy możliwe jest włączenie interakcji tylko dla przycisku.Włączenie funkcji UserInteraction dla podglądu podrzędnego
8
A
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
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
Świetnie, dzięki za podpowiedź zaoszczędziło mi dużo czasu – KeranMarinov
Przyjemnie, zadziałało – atulkhatri