我在UILabelUITableViewCell中添加了一堆contentView View ,其中一些可能会重叠。点击任何标签时,我要触发一些操作。另外,我想将点击的标签调到顶部。

使用标签上的UITapGestureRecognizer,我可以找出被点击的那个并执行操作。但是,将点击和重叠的标签放在最前面是行不通的。这是我正在尝试的:

UILabel *foundLabel = ....; // find the label
for (UITableViewCell *acell in theTable.visibleCells) {
    UIView *cellContentView = acell.contentView;
    if ([cellContentView.subviews containsObject:foundLabel]) {
        [cellContentView bringSubviewToFront:foundLabel];
        NSLog(@"should bring to front...");
    }
}

我确实获得了上面的NSLog输出,所以我知道在适当的单元格的bringSubviewToFront上调用了contentView。但是 subview 布局顺序没有变化。

有想法吗?

最佳答案

要探索的一件事是uitablviewcell层上的zposition。

对于我来说,这成功地将tableviewcell放在另一个 View 的前面:

    cell1.layer.zPosition=3 ;//above

    cell2.layer.zPosition=2 ;//below

10-08 13:50