En uno de mis proyectos de iPhone, tengo tres vistas que puede mover tocando y arrastrando. Sin embargo, quiero evitar que el usuario mueva dos vistas al mismo tiempo, usando dos dedos. Por lo tanto, he intentado experimentar con UIView.exclusiveTouch, sin éxito.¿Por qué no funciona UIView.exclusiveTouch?
Para entender cómo funciona la propiedad, he creado un nuevo proyecto, con el código siguiente en el controlador de 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);
}
Cuando se ejecuta esto, hej: se vuelve a llamar, con diferentes remitentes, al pulsar cualquier de los botones, a pesar de que uno de ellos tiene exclusiveTouch configurado en SÍ. Intenté comentar los múltiplesTouchEnabled-lines, en vano. ¿Puede alguien explicarme qué me falta aquí?
Gracias, Eli
@Bradlarson Me ha actualizado la OP con el enlace actual de la documentación, que son bienvenidos :) –
@ RichardJ.RossIII - así que de ahí que se fue. Estaba buscando dónde colocaron la documentación de manejo del evento el otro día. Gracias. –
No creo que su interpretación sea lo que dice el documento. De acuerdo con el documento, creo que el código de @ eliego debería funcionar como esperaba. Si no, es un error de UIKit o del documento. – an0