Ho un UIView (la 'vista del contenitore') che contiene diverse 'viste secondarie'. Voglio aggiungere un UITapGestureRecognizer alla vista del contenitore, in modo tale che venga attivato quando tocco la regione all'interno della vista contenitore ma all'esterno delle visualizzazioni secondarie.Escludi le visualizzazioni secondarie da UIGestureRecognizer
Al momento, toccando qualsiasi punto all'interno della vista contenitore, incluso all'interno delle visualizzazioni secondarie, viene attivato il riconoscimento dei gesti.
L'implementazione simile a questa: Nel controllore:
ContainerView *containerView = [[ContainerView alloc] initWithSubViews:array];
UITapGestureRecognizer *tap = [UITapGestureRecognizer alloc] initWithTarget:self action:@selector(someSelector)];
[containerView addGestureRecognizer:tap];
[self.view addSubView:containerView];
In ContainerView.m
-(id)initWithSubviews:(NSArray *)array {
for (subView *s in array) {
[self addSubView:s];
}
return self;
}
Credo che il problema si verifica perché il sistema di riconoscimento gesto è aggiunto dopo gli subviews sono. Se ciò è vero, la soluzione richiederebbe la rottura del metodo initWithSubViews in due separati, che preferirei evitare.
Thank You
Questo è costoso e peloso se è necessario controllare molte sottoview. – CodaFi
yup..Vedo .. Non vedo altre buone soluzioni .. se ne avete, sentitevi liberi di condividere .. :) –