1

这里给出一个例子,(使用 ARC )

        UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(onTap:)];

        [subView1 addGestureRecognizer:tapGesture ];
        [subView2 addGestureRecognizer:tapGesture];

这是问题所在:

subView1 不会响应 tapGesture ,但 subView2 会。

如果我们从 subview2 中删除 tapGesture,subView1 将起作用。

在内存管理方面内部发生了什么?为什么不设计使上述代码工作?

4

1 回答 1

3

我很确定 iOS 中包含的标准手势识别器一次只能附加到一个视图。我找不到任何明确说明它的内容,但是如果您查看UIGestureRecognizer该类,则有一个view带有此描述的属性:

手势识别器附加到的视图。(只读)

所以我的猜测是,addGestureRecgnizer:如果它已经附加到视图,它将取消附加 reconizer。

于 2012-06-10T08:56:39.393 回答