Bastante común pregunta esto, a lo que tengo algunas respuestas y estoy casi allí. Tengo un botón que al pulsarlo, se creará una imagen (código de la siguiente manera)UII detección de contacto táctil y arrastre
(numImages se establece en la carga a cero y se utiliza como un recuento para los números de las marcas de todas las imágenes creadas)
UIImage *tmpImage = [[UIImage imageNamed:[NSString stringWithFormat:@"%i.png", sender.tag]] retain];
UIImageView *myImage = [[UIImageView alloc] initWithImage:tmpImage];
numImages += 1;
myImage.userInteractionEnabled = YES;
myImage.tag = numImages;
myImage.opaque = YES;
[self.view addSubview:myImage];
[myImage release];
Luego tengo un método touchesBegan que detectará lo que se toca. Lo que necesito hacer es permitir que el usuario arrastre la imagen recién creada. Está casi funcionando, pero la imagen parpadea por todas partes cuando la arrastra. Puedo acceder a la imagen en la que haces clic ya que puedo obtener su TAG, pero no puedo arrastrarlo bien.
- (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [[event allTouches] anyObject];
CGPoint location = [touch locationInView:touch.view];
if (touch.view.tag > 0) {
touch.view.center = location;
}
NSLog(@"tag=%@", [NSString stringWithFormat:@"%i", touch.view.tag]);
}
- (void) touchesMoved:(NSSet *)touches withEvent: (UIEvent *)event {
[self touchesBegan:touches withEvent:event];
}
Funciona, ya que obtengo una salida de la etiqueta para cada imagen cuando hago clic en ellas. Pero cuando lo arrastro, parpadea ... ¿Alguna idea?
el código anterior proviene de http://www.iphoneexamples.com/ –
gracias por publicar esto, pero estoy recibiendo el efecto de fluctuación de fase al hacer esto, ¿cómo se puede evitar? – itsaboutcode
gracias hombre! trabajando como un encanto :) – soupdiver