为什么UITapGestureRecognizer不能用于UIImageView?

iPa*_*tel 1 iphone objective-c uiimageview uigesturerecognizer ios

我添加了Simple UITapGestureRecognizerto UIImageView并创建了在用户点击/触摸时调用的Gesture方法 UIImageView

我的代码是:

UITapGestureRecognizer *eagleTapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(eagleTapGestureIsCall:)];
eagleTapGesture.numberOfTapsRequired = 1;
[self.egaleImgView addGestureRecognizer:eagleTapGesture]; 
Run Code Online (Sandbox Code Playgroud)

手势方法:

- (void)eagleTapGestureIsCall:(UITapGestureRecognizer *)recognizer
{
    CGPoint location = [recognizer locationInView:[recognizer.view superview]];
    NSLog(@"Eagle is Tapped X - %f",location.x);
    NSLog(@"Eagle is Tapped Y - %f",location.y);
}
Run Code Online (Sandbox Code Playgroud)

在这里,如果我添加手势UIView而不是self.egaleImgView它的工作(我的意思是手势方法被调用),但为什么它不工作self.egaleImgView

谷歌搜索后我发现,可能会UIView触及他们可以触及的触摸UIImageView.

所以我在开头添加了以下行 viewDidLoad

self.view.userInteractionEnabled = NO; /// Here i set userInteractionEnabled = NO;
Run Code Online (Sandbox Code Playgroud)

以下描述了更好理解的结构.

                main UIView
                  |     |

(Sub view) mainBackGroungImageView //// size is similar to size of main UIView
                  |     |
        (Sub view) gestureAdded ImageView 
Run Code Online (Sandbox Code Playgroud)

编辑:

对不起家伙忘记提及我已添加self.egaleImgView.userInteractionEnabled = YES;到我的imageView,但它不适合我.

请给我关于我的问题的建议.

提前致谢.

Iro*_*ill 11

设置你的,ImageView.userInteractionEnabled = YES;因为它默认为NO.最好将视图的用户交互设置为YES.