2013-07-25 4 views
6

Sto creando un numero casuale di UIViews personalizzate della stessa classe e le sto aggiungendo nella vista di UIViewController. Sto assegnando loro un UITapGestureRecognizer, ma io non riesco a far funzionare il tocco esclusivo:Imposta il tocco esclusivo su più UIViews della stessa classe

for (int i = 0; i <= n; i++) { 
    ICCatalogProductView *catalogProductView; 
    catalogProductView = [[ICCatalogProductView alloc] init]; 
    [self.view addSubview:catalogProductView] 
    UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(testTouch)]; 
    [catalogProductView addGestureRecognizer:tapGesture]; 
    [catalogProductView setExclusiveTouch:YES]; 
} 

Se si tocca l'UIViews simultanously, il metodo viene chiamato due volte (non il comportamento che voglio). Esiste un metodo elegante per risolvere questo o qualsivoglia metodo?

+0

ciò che in realtà si desidera sulla scheda simultanea. per favore specificare. – Suryakant

+0

verifica questo: -http: //stackoverflow.com/questions/11919624/ios-setting-exclusive-touch-to-all-buttons-in-a-view –

+0

Voglio solo un tocco per essere possibile, lo stesso comportamento avrebbe quando ci sono 2 UIButtons con .exclusiveTouch = YES –

risposta

1

dal disco della documentazione di Apple:

exclusiveTouch impedisce solo tocchi in altre viste durante il tempo in che c'è un tocco attivo nella vista esclusiva tocco. Cioè, se metti un dito in basso in un tocco esclusivo, i tocchi non inizieranno a in altre viste finché non si solleva il primo dito. Non impedisce ai tocchi di iniziare da altre viste se al momento non ci sono tocchi nella visualizzazione exclusiveTouch.

Per fare veramente questo punto di vista l'unica cosa sullo schermo in grado di ricevere tocchi avresti bisogno di aggiungere un altro sia vista sulla cima a tutto il resto per prendere il resto dei tocchi, o sottoclasse una vista da qualche parte nel tuo gerarchia (o lo stesso UIWindow) e sostituisci hitTest: withEvent: per restituire sempre la visualizzazione del testo quando è visibile, o per restituire nil per i tocchi non presenti nella visualizzazione di testo.

significa che il suo unico set esclusivo nella tua vista, non se stai toccando qualcosa al di fuori della tua vista.

+0

Entrambe le UIViews che sto toccando hanno il set esclusivo Tocco SÌ, ma è possibile il tocco simultaneo. –

+0

Fondamentalmente, toccando qualsiasi vista diversa da ActivityView rendi ActivityView Scomparso, dovrai gestirlo utilizzando la visualizzazione dell'attività. Dio non voglia, ma probabilmente dovresti creare due visioni separate. Ha qualcosa a che fare con il primo soccorritore. –