2012-02-09 10 views
11

Próbuję zrobić klikalny UIImage, w którym użytkownik może kliknąć go wtedy będzie to animować ...Dodawanie Tap gest UIImage

Pracuję z UIScrollView dlatego użył UITapGesture zamiast touchesBegan, i wygląda na to, że program UIGestureRecognizer nie jest zgodny z UIImage ...

mam rację?

Ciągle odbiera ten komunikat o błędzie

odbiornik typu „UIImage” na przykład wiadomości nie deklaruje metodę z selektora „addGestureRecognizer”

jest jakiś inny sposób?

+0

możliwy duplikat [GestureRecognizer na UIImageView] (http://stackoverflow.com/questions/3907397/gesturerecognizer-on-uiimageview) – iosMentalist

Odpowiedz

5

Trzeba dodać gest UIImageView, nie UIImage

+0

nie działa z Core Animation. co próbuję tutaj zrobić, to obraz będzie animowany po kliknięciu. – Crisn

+0

Chodzi o to, że UIImage nie może odbierać zdarzenia dotyku. Musisz poradzić sobie z wydarzeniem dotykowym gdzieś indziej. – jasondinh

1

Spróbuj z UIButton zamiast UIIMage i dokonać UIButton typu zwyczaj. Po kliknięciu tego samego można wyświetlić animację.

+0

czy UIButton może być animowany? użyłem UIImage z powodu CoreAnimation. – Crisn

+1

Zdarzenie click button, można wyświetlić animację UIImage – Sarah

+0

To tylko obejście, ale nie właściwa odpowiedź. Najlepszym sposobem jest dodanie gestu do UIImageView. Nie nadużywaj przycisków jako obrazów, które nie są właściwym sposobem. – mariusLAN

2

Możesz po prostu dodać TapGestureRecognizer do UIImageView. Musisz użyć UIImageView, ponieważ narzędzie do rozpoznawania gestów może być dodawane tylko do widoków.

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

Można odpowiedź do kranu z określonym selektora i robić rzeczy tam

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

Trzeba dodać TapGesture w UIImageView nie UIImage

imgView.userInteractionEnabled = YES; 

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

tapGesture1.numberOfTapsRequired = 1; 

[tapGesture1 setDelegate:self]; 

[imgView addGestureRecognizer:tapGesture1]; 

[tapGesture1 release]; 

Można odpowiedź do kranu z zdefiniowanym selektorem i rób tam różne rzeczy:

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