2012-02-09 11 views
11

que estoy tratando de hacer que se puede hacer clic UIImage, donde el usuario puede hacer clic en él, entonces va a animar ...Adición de Tap Gesto de UIImage

estoy trabajando con el UIScrollView Es por eso que utilicé la UITapGesture en lugar de touchesBegan, y parece que UIGestureRecognizer no es compatible con UIImage ...

¿me equivoco?

i seguir recibiendo este mensaje de error

tipo de receptor 'UIImage' para el mensaje de instancia no declara un método con el selector 'addGestureRecognizer'

¿hay alguna otra manera?

+0

posible duplicado de [GestureRecognizer en UIImageView] (http://stackoverflow.com/questions/3907397/gesturerecognizer-on-uiimageview) – iosMentalist

Respuesta

5

hay que añadir el gesto a UIImageView, no UIImage

+0

no funciona con Core Animation. Lo que intento hacer aquí es que la imagen se animará cuando haga clic en ella. – Crisn

+0

El punto aquí es que UIImage no puede recibir evento táctil. Tienes que manejar el evento táctil en otro lugar. – jasondinh

1

intento con UIButton en lugar de UIIMage y crea el tipo UIButtonencargo. Y al hacer clic en el mismo, puede mostrar la animación.

+0

¿Se puede animar UIButton? utilicé el UIImage debido a CoreAnimation. – Crisn

+1

al hacer clic en evento, puede mostrar la animación de UIImage – Sarah

+0

Esto es solo una solución pero no la respuesta correcta. La mejor manera es agregar el gesto a UIImageView. No abuse de los botones como Imágenes que no son la forma correcta de hacerlo. – mariusLAN

2

Simplemente puede agregar un TapGestureRecognizer a un UIImageView. Tienes que usar un UIImageView porque el reconocedor de gestos solo se puede agregar a las vistas.

UIView *someView = [[UIView alloc] initWithFrame:CGRectZero]; 
UITapGestureRecognizer *tapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapAction:)]; 
tapRecognizer.numberOfTapsRequired = 1; 
[someView addGestureRecognizer:tapRecognizer];

Puede respuesta al grifo con el selector definido y hacer cosas allí

- (void)tapAction:(UITapGestureRecognizer *)tap 
{ 
    // do stuff 
}
17

Hay que añadir TapGesture en UIImageView no UIImage

imgView.userInteractionEnabled = YES; 

UITapGestureRecognizer *tapGesture1 = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapGesture:)]; 

tapGesture1.numberOfTapsRequired = 1; 

[tapGesture1 setDelegate:self]; 

[imgView addGestureRecognizer:tapGesture1]; 

[tapGesture1 release]; 

Puede respuesta al grifo con el selector definido y hacer cosas allí

- (void) tapGesture: (id)sender 
{ 
    //handle Tap... 
}