7

我创建了 UIView 的自定义子类,因为我需要覆盖 drawRect 方法。我尝试向它添加一个 UITapGestureRecognizer ,但这对我不起作用。在这里,我的 ViewController 的代码:

MyCustomView *customView = [[MyCustomView alloc] initWithFrame:CGRectFrame(0, 30, 30, 30)];
[customView setUserInteractionEnabled:YES];

UITapGestureRecognizer *tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(doSomething)];
[customView addGestureRecognizer:tapGestureRecognizer];

我不明白为什么当我触摸我的 UIView 子类对象时,手势识别器没有启动。

非常感谢提前!

解决了!

我的视图在 UIImageView 上,而 UIImageView 没有userInteractionEnabled设置为 YES。

4

4 回答 4

13

解决了!

我的视图在 UIImageView 上,而 UIImageView 没有userInteractionEnabled设置为 YES。

于 2012-06-11T12:01:13.813 回答
0

确保将其显示在某处 ( addSubview)。

于 2012-06-11T11:13:05.750 回答
0

还要确保 userInteractionEnabled 设置为 true。如果这是真的,请发布创建和连接手势识别器的代码。

于 2012-06-11T11:51:34.717 回答
0

在要添加的子视图上将 UserInteractionEnable 检查设置为 true,并在选择器方法中,将对象与它一起传递,即

UITapGestureRecognizer *tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(doSomething:)];

并使选择器方法为

-(void) doSomething:(UITapGestureRecognizer *)gesture;

如果您仍有问题,请告诉我。谢谢!

于 2012-06-11T12:00:34.017 回答