如何将子视图从其父视图的父视图置于顶部
Posted
技术标签:
【中文标题】如何将子视图从其父视图的父视图置于顶部【英文标题】:How to bring subView to top from superview of its superview 【发布时间】:2013-09-25 06:45:29 【问题描述】:我有一个视图层次结构,即视图 1 --> 视图 2 --> 视图 3。因此,视图 3 是视图 2 的子视图,它是视图 1 的子视图。现在,从视图 1,我想带来视图3 到前面,而不将视图 2 放在前面。由于视图 2 中的相对定位,我无法在窗口中添加视图 3。
有什么想法吗?
【问题讨论】:
【参考方案1】:不,你不能。除非 view3 应该从视图 2 中删除并添加到视图 1,然后使用 bringSubviewToFront:
方法使其位于前面。
【讨论】:
这是有效的。这里唯一缺少的是,您需要更改视图 3 相对于视图 1 坐标的中心。 当然,当您将作为子视图添加到新视图框架时,对于新的父视图而言,变化是显而易见的。【参考方案2】:见Move a view to a new superview without flickering,你可以将相对框架转换为窗口,然后将视图添加到窗口,这将使视图3保持在其原始框架上
【讨论】:
【参考方案3】:你可以试试这个代码..
[self.view bringSubviewToFront:yourview];
【讨论】:
这不起作用,因为 view3 不是 view1 的直接子视图。【参考方案4】:不访问view2就不能直接访问view3。
试试这个:
[view2 bringSubviewToFront:view3];
[view1 bringSubviewToFront:view2];
【讨论】:
以上是关于如何将子视图从其父视图的父视图置于顶部的主要内容,如果未能解决你的问题,请参考以下文章