如何使一个UIView始终显示在其他视图之上

6

我有两个视图(UIView):父视图和子视图。子视图按照预期显示在父视图上方。但是,现在我需要添加一些子视图,希望它们显示在子视图下方,但在父视图上方。有没有一种简单的方法来保持第一个子视图在顶部,并同时添加新的子视图?我希望新添加的子视图的显示顺序与插入顺序相匹配。


请查看这个问题。 - phi
2个回答

10

使用以下任意一个 UIView 方法来控制深度。

 bringSubviewToFront:
 sendSubviewToBack:
 insertSubview:atIndex:
 insertSubview:aboveSubview:
 insertSubview:belowSubview:
这段内容摘自于“视图层次结构和子视图管理”章节中的视图编程指南文档。
每个父视图都会将其子视图存储在有序数组中,而该数组中的顺序也会影响每个子视图的可见性。如果两个兄弟子视图相互重叠,则最后添加到数组末尾(或移动到子视图数组的末尾)的那个子视图会出现在另一个子视图的上面。

1
我建议为addSubview创建包装方法。类似这样:
- (void)insertSubviewBetweenParentAndChild:(UIView *)newChild {
    [self insertSubview:newChild aboveSubview:parentView];
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接