2011-03-13 92 views
6

我有两个视图(UIView)设置:父视图和子视图。根据需要,子视图显示在父视图的顶部。不过,我现在需要添加子视图,我希望显示在子视图的下方,但在父视图的上方。在添加新子视图的同时保持第一个子视图在顶部的简单方法是什么?我想保留新添加的子视图显示顺序匹配插入顺序。如何让uiview高于其他视图

+0

检查[this](http://stackoverflow.com/questions/1519141/difference-between-addsubview-and-insertsubview-in-uiview-class)问题。 – phi 2011-03-13 09:11:13

回答

10

使用以下任何一种UIView方法来控制深度。

– bringSubviewToFront: 
– sendSubviewToBack: 
– insertSubview:atIndex: 
– insertSubview:aboveSubview: 
– insertSubview:belowSubview: 

这是从在视图层次结构和子视图管理部分的View Programming Guide文档采取

每个上海华存储它的子视图以有序阵列和阵列中的顺序也影响每个子视图的可见性。如果两个兄弟子视图彼此重叠,则最后添加的子视图(或移动到子视图数组的末尾)会出现在另一个之上。
1

我建议为addSubview创建包装方法。例如:

- (void)insertSubviewBetweenParentAndChild:(UIView *)newChild { 
    [self insertSubview:newChild aboveSubview:parentView]; 
} 
相关问题