我创建了一个小型示例项目,其中的 Nib 包含 ImageView 。在我的 View Controller 代码中,我在 ImageView 中添加了一个手势识别器来检测点击。但它从不调用处理程序方法。
这是标题:
#import <UIKit/UIKit.h>
@interface TapExperimentViewController : UIViewController {
UIImageView *imageView;
}
@property (retain) IBOutlet UIImageView *imageView;
- (void)handleTap:(UIGestureRecognizer *)sender;
@end
这是实现文件:
#import "TapExperimentViewController.h"
@implementation TapExperimentViewController
@synthesize imageView;
- (void)dealloc {
[imageView release];
[super dealloc];
}
- (void)viewDidLoad {
[super viewDidLoad];
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]
initWithTarget:self
action:@selector(handleTap:)];
[self.imageView addGestureRecognizer:tap];
[tap release];
}
- (void)viewDidUnload {
[super viewDidUnload];
self.imageView = nil;
}
- (void)handleTap:(UIGestureRecognizer *)sender {
if (sender.state == UIGestureRecognizerStateEnded) {
NSLog(@"tap");
}
}
@end
我已确保 socket 已连接。为什么当我触摸图像时,handleTap: 没有被调用?
最佳答案
我自己没有使用过手势,但我知道UIImageView
默认情况下不启用用户交互。
New image view objects are configured to disregard user events by default. If you want to handle events in a custom subclass of UIImageView, you must explicitly change the value of the userInteractionEnabled property to YES after initializing the object.
关于iphone - 为什么我的点击未被识别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5557411/