0

在 iOS7 中,以编程方式添加的子视图上的手势识别器似乎没有触发,但是当以编程方式将手势识别器添加到通过我的故事板界面添加的视图时,手势识别器触发没有问题。这曾经在 iOS6 中工作,但在 iOS7 中突然停止工作。我做错了什么或我错过了什么?

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

UIImageView *imageToTap = [[UIImageView alloc] initWithImage:[UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Transparent" ofType:@"png"]]];
imageToTap.frame = CGRectMake(0, 0, 100, 100);
imageToTap.backgroundColor = [UIColor redColor];
[imageToTap addGestureRecognizer:tapGestureRecognizer];

[self.view addSubview:imageToTap];

编辑:

虽然我忘记将 userInteractionEnabled 属性添加到我的示例中(它在我的真实代码中设置),但以下添加它的建议让我意识到我的真​​正问题是我在横向模式下看到的奇怪的帧/边界问题。

谢谢您的帮助!

4

2 回答 2

1

UIImageView默认已userInteractionEnabled禁用。所以你必须手动启用它。:

[imageToTap setUserInteractionEnabled:YES];
于 2013-09-20T06:40:24.717 回答
0

默认情况下,UIImageView 上禁用用户交互。尝试设置imageToTap.userInteractionEnabled = YES,看看是否适合您。希望这可以帮助

于 2013-09-20T06:40:14.807 回答