0

所以我的问题是,我想在我的单元格中添加一个带有点击手势识别器的视图。起初我使用 insertSubview:view atIndex:0 添加它,但不是手势识别器触发,而是触发了 didSelectRow:atIndexPath。经过长时间的故障排除后,我发现如果我使用 addSubview 添加它就可以了。我猜 insertView:atIndex 是在 UITableViewCell.contentView 下方插入视图,这就是为什么 didSelectRow:atIndexPath 被触发而不是手势识别器,我只想知道这是否属实?

4

1 回答 1

0

tl;博士:你是对的。

通过调用 insertSubview:view atIndex:0,您将视图的 z 值设置为可能的最低值。您正在告诉超级视图您希望超级视图中的所有其他视图都覆盖在视图之上。

调用 addSubview 将新视图添加到父视图中存在的视图堆栈之上;从而给它一个最大的z值。

如果您仍然喜欢使用第一种方法,则可以使用当前存在于父视图中的子视图数量,如下所示:

[someSUperView insertSubview:view atIndex:([[view subviews] count] -1)];
于 2013-10-21T20:52:53.493 回答