我有两个视图(UIView)设置:父视图和子视图。根据需要,子视图显示在父视图的顶部。但是我现在需要添加子视图,我希望显示在子视图下方,但在父视图上方。在添加新子视图的同时,将第一个子视图保持在最顶层的简单方法是什么?我想保持新添加的子视图显示顺序匹配插入顺序。
答案 0 :(得分:10)
使用以下任何UIView
方法来控制深度。
– bringSubviewToFront:
– sendSubviewToBack:
– insertSubview:atIndex:
– insertSubview:aboveSubview:
– insertSubview:belowSubview:
这取自“查看层次结构和子视图管理”部分中的View Programming Guide文档,
每个superview将其子视图存储在有序数组中,该数组中的顺序也会影响每个子视图的可见性。如果两个兄弟子视图相互重叠,则最后添加的子视图(或移动到子视图数组的末尾)将显示在另一个子视图的顶部。
答案 1 :(得分:1)
我建议为addSubview
创建包装器方法。像这样:
- (void)insertSubviewBetweenParentAndChild:(UIView *)newChild {
[self insertSubview:newChild aboveSubview:parentView];
}