In uno dei miei progetti iPhone, ho tre visualizzazioni che è possibile spostare toccando e trascinando. Tuttavia, voglio impedire all'utente di spostare due viste contemporaneamente, usando due dita. Ho quindi provato a sperimentare con UIView.exclusiveTouch, senza alcun successo.Perché UIView.exclusiveTouch non funziona?
Per capire come le opere di proprietà, ho creato un nuovo progetto, con il seguente codice nel controller della vista:
- (void)loadView {
self.view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 460)];
UIButton* a = [UIButton buttonWithType:UIButtonTypeInfoDark];
[a addTarget:self action:@selector(hej:) forControlEvents:UIControlEventTouchUpInside];
a.center = CGPointMake(50, 50);
a.multipleTouchEnabled = YES;
UIButton* b = [UIButton buttonWithType:UIButtonTypeInfoDark];
[b addTarget:self action:@selector(hej:) forControlEvents:UIControlEventTouchUpInside];
b.center = CGPointMake(200, 50);
b.multipleTouchEnabled = YES;
a.exclusiveTouch = YES;
[self.view addSubview:a];
[self.view addSubview:b];
}
- (void)hej:(id)sender
{
NSLog(@"hej: %@", sender);
}
Quando si esegue questa, hej: viene chiamato, con diversi mittenti, quando si preme qualsiasi dei pulsanti - anche se uno di essi ha esclusivoTouch impostato su SÌ. Ho provato a commentare le linee multipleTouchEnabled, senza alcun risultato. Qualcuno può spiegarmi cosa mi manca qui?
Grazie, Eli
@Bradlarson ho aggiornato l'OP con il collegamento corrente alla documentazione, vi sono i benvenuti :) –
@ RichardJ.RossIII - Ecco dove che è andato. Stavo cercando dove hanno messo la documentazione di gestione degli eventi l'altro giorno. Grazie. –
Non credo che la tua interpretazione sia ciò che dice il doc. Secondo il doc, penso che il codice di @ eliego dovrebbe funzionare come previsto. In caso contrario, si tratta di un bug di UIKit o del documento. – an0