我有两个视图(UIView):父视图和子视图。子视图按照预期显示在父视图上方。但是,现在我需要添加一些子视图,希望它们显示在子视图下方,但在父视图上方。有没有一种简单的方法来保持第一个子视图在顶部,并同时添加新的子视图?我希望新添加的子视图的显示顺序与插入顺序相匹配。
使用以下任意一个 UIView 方法来控制深度。– bringSubviewToFront: – sendSubviewToBack: – insertSubview:atIndex: – insertSubview:aboveSubview: – insertSubview:belowSubview: 这段内容摘自于“视图层次结构和子视图管理”章节中的视图编程指南文档。 每个父视图都会将其子视图存储在有序数组中,而该数组中的顺序也会影响每个子视图的可见性。如果两个兄弟子视图相互重叠,则最后添加到数组末尾(或移动到子视图数组的末尾)的那个子视图会出现在另一个子视图的上面。
我建议为addSubview创建包装方法。类似这样:- (void)insertSubviewBetweenParentAndChild:(UIView *)newChild { [self insertSubview:newChild aboveSubview:parentView]; }