2012-02-09 67 views
11

我努力使可点击的UIImage,用户可以单击它,然后它会动画双击手势...添加上的UIImage

我与这就是为什么我使用的UITapGesture代替的touchesBegan的UIScrollView的工作,看来UIGestureRecognizer与UIImage不兼容...

对不对?

我不断接收到该错误消息例如消息

接收器类型“的UIImage”不声明一个方法 具有选择“addGestureRecognizer”

是有任何其他方式?

+0

[UIImageView]上的[G​​estureRecognizer]可能的重复(http://stackoverflow.com/questions/3907397/gesturerecognizer-on-uiimageview) – iosMentalist 2014-06-09 07:00:41

回答

5

你必须手势加入的UIImageView,而不是UIImage的

+0

它不适用于Core Animation。我在这里想要做的是,当你点击它时,图像会生成动画。 – Crisn 2012-02-09 06:36:38

+0

这里的重点是UIImage无法接收触摸事件。你必须在其他地方处理触摸事件。 – jasondinh 2012-02-09 06:40:19

1

尝试用UIButton代替UIIMage,使UIButton定制。并点击相同的,你可以显示动画。

+0

可以UIButton动画?由于CoreAnimation,我使用了UIImage。 – Crisn 2012-02-09 06:35:48

+1

按钮点击事件,你可以显示UIImage的动画 – Sarah 2012-02-09 06:45:48

+0

这只是一个解决方法,但不是正确的答案。最好的方法是将手势添加到UIImageView。不要滥用按钮作为图像,这是不正确的做法。 – mariusLAN 2012-02-09 07:04:59

2

您可以简单地将TapGestureRecognizer添加到UIImageView。您必须使用UIImageView,因为手势识别器只允许添加到视图中。

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

您可以响应与定义的选择水龙头,做的东西有

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

你必须在UIImageView的添加TapGesture没有的UIImage

imgView.userInteractionEnabled = YES; 

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

tapGesture1.numberOfTapsRequired = 1; 

[tapGesture1 setDelegate:self]; 

[imgView addGestureRecognizer:tapGesture1]; 

[tapGesture1 release]; 

您可以应对水龙头与定义的选择器和做的东西那里

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