【发布时间】:2011-07-14 09:24:32
【问题描述】:
我有两个视图 (UIView) 设置:父视图和子视图。根据需要,子视图显示在父视图的顶部。但是,我现在需要添加子视图,因为我希望显示在子视图下方,但在父视图上方。在添加新子视图时保持第一个子视图位于顶部的简单方法是什么?我想保持新添加的子视图显示顺序匹配插入顺序。
【问题讨论】:
-
检查this问题。
我有两个视图 (UIView) 设置:父视图和子视图。根据需要,子视图显示在父视图的顶部。但是,我现在需要添加子视图,因为我希望显示在子视图下方,但在父视图上方。在添加新子视图时保持第一个子视图位于顶部的简单方法是什么?我想保持新添加的子视图显示顺序匹配插入顺序。
【问题讨论】:
我建议为addSubview 创建包装方法。像这样的:
- (void)insertSubviewBetweenParentAndChild:(UIView *)newChild {
[self insertSubview:newChild aboveSubview:parentView];
}
【讨论】:
使用以下任一UIView 方法来控制深度。
– bringSubviewToFront:
– sendSubviewToBack:
– insertSubview:atIndex:
– insertSubview:aboveSubview:
– insertSubview:belowSubview:
这取自 View Hierarchies and Subview Management 部分中的 View Programming Guide 文档,
每个超级视图将其子视图存储在有序数组中,并且该数组中的顺序也会影响每个子视图的可见性。如果两个同级子视图相互重叠,则最后添加的(或移动到子视图数组末尾的)出现在另一个之上。
【讨论】: