2012-11-16 11 views
8

Ich habe eine Ansicht und view.UserInteractionenabled = Nein und eine Schaltfläche wird der Ansicht hinzugefügt. Ich muss nur auf den Knopf klicken. Ist es möglich, die Interaktion nur für die Schaltfläche zu aktivieren?UserInteraction aktivieren nur für Teilansicht

Antwort

12

kann Ein Blick nicht berührt erhalten, es sei denn userInteractionEnabledYES für die Ansicht und alle seine superviews bis zum Objekt UIWindow ist.

Sie können eine Unterklasse von UIView so einrichten, dass sie die Schaltfläche enthält, und Berührungen außerhalb der Schaltfläche ignorieren, indem Sie hitTest:withEvent: überschreiben. Beispiel:

@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

Dies wird nicht helfen, wenn es eine Schaltfläche in der Superview ist, die direkt unter der Schaltfläche in seiner subview ist (wie jedes Menü, das über einem Superview geöffnet), als wenn Sie die eine in der subview getroffen und erkenne nur ihn, es wird immer noch den Knopf im Superview feuern. – Curnelious

+0

Großartig, danke für den Tipp hat mich viel Zeit gerettet – KeranMarinov

+0

Schön, es hat funktioniert – atulkhatri

Verwandte Themen