objective animatedimage iphone uiimageview touch

iphone - animatedimage - Evento táctil UIImageView



objective c uiimage (4)

Quiero llamar a mi evento de clic de botón mientras toco la uiimageview nombrada como (imagen1) .Imageview colocada en uiview (view1).

Este es mi código:

- (IBAction)buttonClicked:(id)sender { myTimer = [NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(alphabutt:) userInfo:nil repeats:NO]; } -(IBAction)alphabutt:(id)sender { NSLog(@"alphabutt!"); if(i==1) { NSLog(@"i==1"); [image1 setImage:[UIImage imageNamed:@"appleimg.jpg"]]; [view1 addSubview:image1]; transition1 = [CATransition animation]; transition1.duration = 0.75; transition1.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; transition1.type=kCATransitionReveal; transition1.subtype=kCATransitionFromRight; transitioning = YES; transition1.delegate = self; [image1.layer addAnimation:transition1 forKey:nil]; } if(i==2) { NSLog(@"i==2"); [image1 setImage:[UIImage imageNamed:@"boatimg.jpg"]]; [view1 addSubview:image1]; transition2 = [CATransition animation]; transition2.duration = 0.75; transition2.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; transition2.type=kCATransitionFade; transition2.subtype=kCATransitionFromRight; transitioning = YES; transition2.delegate = self; [image1.layer addAnimation:transition2 forKey:nil]; i=0; } i++; }

Lo anterior es mi código al hacer clic en el botón al que se llama el evento al presionar el botón. Dentro del botón, haga clic en evento el temporizador funciona para llamar al alfabutt (evento de clic de botón) con el intervalo de tiempo de 2.0.alphabutt se llama con cada 2.0. Quiero hacer esto animación cuando toco el uiimageview (imagen1) entonces solo llama al botón clic evento (alphabutt). ¿Cómo puedo escribir el evento táctil para la vista de imagen ...

Explique brevemente algunos códigos para realizar uiimageview touch event ...


Aquí te muestro dos posibilidades para lograr eso en Swift :

Primera posibilidad

import UIKit class ViewController: UIViewController { @IBOutlet var myUIImageView: UIImageView! override func viewDidLoad() { super.viewDidLoad() // You can also manually set it through IB // selecting the UIImageView in the storyboard // and checking "User Interaction Enabled" checkbox // in the Attributes Inspector panel. self.myUIImageView.userInteractionEnabled = true } // You can choose to use one of the UIResponder methods: // touchesBegan, touchesMoved, touchesEnded etc, in order to detect the touch // on the UIImageView. override func touchesEnded(touches: Set<UITouch>, withEvent event: UIEvent?) { let touch: UITouch? = touches.first if touch?.view == myUIImageView { println("myUIImageView has been tapped by the user.") } super.touchesEnded(touches, withEvent: event) } }

Segunda Posibilidad

import UIKit class ViewController: UIViewController { @IBOutlet var myUIImageView: UIImageView! override func viewDidLoad() { super.viewDidLoad() let singleTap = UITapGestureRecognizer(target: self, action: "myUIImageViewTapped:") singleTap.numberOfTapsRequired = 1 // Initialized to 1 by default singleTap.numberOfTouchesRequired = 1 // Initialized to 1 by default self.myUIImageView.addGestureRecognizer(singleTap) self.myUIImageView.userInteractionEnabled = true } func myUIImageViewTapped(recognizer: UITapGestureRecognizer) { if(recognizer.state == UIGestureRecognizerState.Ended){ println("myUIImageView has been tapped by the user.") } } }


Haga que su interacción con el usuario de vista de imagen esté habilitada en el xib (o mediante el código si lo está agregando mediante programación) y use los métodos UIResponder touchesBegan, touchesMoved, touchesEnded, etc. para detectar el toque en la vista de imagen:

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { UITouch *touch = [touches anyObject]; if ([touch view] == yourImageView) { //add your code for image touch here } }


También puede arrastrar y soltar un objeto UIButton sobre UIImageView . Luego, en el editor del guión gráfico, simplemente haz el UIButton de tipo Custom , haciendo que el UIButton invisible. Luego maneje el evento click como lo haría con cualquier botón.


puede usar UITapGestureRecognizer agregado a UIImageView través de addGestureRecognizer

fragmentos de código:

UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(bannerTapped:)]; singleTap.numberOfTapsRequired = 1; singleTap.numberOfTouchesRequired = 1; [iv addGestureRecognizer:singleTap]; [iv setUserInteractionEnabled:YES];

y

- (void)bannerTapped:(UIGestureRecognizer *)gestureRecognizer { NSLog(@"%@", [gestureRecognizer view]); }