2012-02-09 25 views
11

Tôi cố gắng để làm cho nhấp được UIImage, nơi người dùng có thể nhấp vào nó sau đó nó sẽ sinh động ...Thêm Tap Gesture trên UIImage

tôi đang làm việc với các UIScrollView đó là lý do tại sao tôi sử dụng UITapGesture thay vì touchesBegan, và có vẻ như UIGestureRecognizer không tương thích với UIImage ...

Tôi có đúng không?

tôi tiếp tục nhận được thông báo lỗi này

thu gõ 'UIImage' cho thông điệp dụ không khai báo một phương pháp với selector 'addGestureRecognizer'

là có cách nào khác?

+0

có thể trùng lặp của [GestureRecognizer trên UIImageView] (http://stackoverflow.com/questions/3907397/gesturerecognizer-on-uiimageview) – iosMentalist

Trả lời

5

Bạn phải thêm cử chỉ để UIImageView, không UIImage

+0

nó không hoạt động với Core Animation. những gì tôi đang cố gắng làm ở đây là, hình ảnh sẽ sinh động khi bạn nhấp vào nó. – Crisn

+0

Điểm ở đây là UIImage không thể nhận sự kiện chạm. Bạn phải xử lý các sự kiện liên lạc ở một nơi khác. – jasondinh

1

Hãy thử với UIButton thay vì UIIMage và làm cho UIButton loại tùy chỉnh. Và khi nhấp vào cùng, bạn có thể hiển thị hoạt ảnh.

+0

UIButton có thể hoạt ảnh không? tôi đã sử dụng UIImage vì CoreAnimation. – Crisn

+1

trên sự kiện nhấp vào nút, bạn có thể hiển thị hoạt ảnh của UIImage – Sarah

+0

Đó chỉ là giải pháp thay thế nhưng không phải là câu trả lời đúng. Cách tốt nhất là thêm cử chỉ vào UIImageView. Không lạm dụng các nút vì Hình ảnh không đúng cách để thực hiện. – mariusLAN

2

Bạn chỉ cần thêm TapGestureRecognizer vào UIImageView. Bạn phải sử dụng UIImageView vì trình nhận dạng cử chỉ chỉ được phép thêm vào chế độ xem.

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

Bạn có thể đối phó với vòi nước với bộ chọn xác định và làm công cụ có

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

Bạn phải thêm TapGesture trong UIImageView không UIImage

imgView.userInteractionEnabled = YES; 

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

tapGesture1.numberOfTapsRequired = 1; 

[tapGesture1 setDelegate:self]; 

[imgView addGestureRecognizer:tapGesture1]; 

[tapGesture1 release]; 

Bạn có thể đối phó với vòi nước với công cụ chọn được xác định và làm công cụ ở đó

- (void) tapGesture: (id)sender 
{ 
    //handle Tap... 
} 
Các vấn đề liên quan