在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属性添加到我的示例中(它是在我的实际代码中设置的),但是下面添加它的建议让我意识到我的真正问题是我在Landscape模式中看到的奇怪的帧/边界问题。
感谢您的帮助!
答案 0 :(得分:1)
UIImageView
已禁用userInteractionEnabled
。所以你必须手动启用它。:
[imageToTap setUserInteractionEnabled:YES];
答案 1 :(得分:0)
默认情况下,在UIImageView上禁用用户交互。
尝试设置imageToTap.userInteractionEnabled = YES
,看看它是否适合您。
希望这有帮助