【发布时间】:2013-06-16 23:40:34
【问题描述】:
我已将 Simple UITapGestureRecognizer 添加到 UIImageView 并创建了 Gesture Method,当用户点击/触摸时会调用它 UIImageView
我的代码是:
UITapGestureRecognizer *eagleTapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(eagleTapGestureIsCall:)];
eagleTapGesture.numberOfTapsRequired = 1;
[self.egaleImgView addGestureRecognizer:eagleTapGesture];
手势方法:
- (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);
}
这里如果我在UIView 而不是self.egaleImgView 上添加手势,那么它可以工作(我的意思是调用手势方法)但是为什么它不能在self.egaleImgView 上工作??? p>
谷歌搜索后发现,可能是UIView在触摸到达UIImageView之前拦截了触摸。
所以我在viewDidLoad的开头添加了以下行
self.view.userInteractionEnabled = NO; /// Here i set userInteractionEnabled = NO;
以下描述结构以便更好地理解。
main UIView
| |
(Sub view) mainBackGroungImageView //// size is similar to size of main UIView
| |
(Sub view) gestureAdded ImageView
已编辑:
抱歉,忘记提及我已将 self.egaleImgView.userInteractionEnabled = YES; 添加到我的 imageView,但它不适合我。
请就我的问题给我建议。
提前致谢。
【问题讨论】:
-
您是否启用了用户交互?在图像视图本身上。
-
默认情况下,图像视图禁用用户操作
-
不要在视图上禁用
userInteraction。 -
能否检查一下imageView的superView是否没有裁剪imageView。
标签: iphone ios objective-c uiimageview uigesturerecognizer