你好,我有一个父视图和多个子视图。当我在父视图中使用[self bringSubviewToFront:childview]时,它可以正常工作。但是,当我在子视图中添加了孙子视图后,在父视图中使用[self bringSubviewToFront: grandchildview]就不能正常工作了。请问有什么帮助吗?
你好,我有一个父视图和多个子视图。当我在父视图中使用[self bringSubviewToFront:childview]时,它可以正常工作。但是,当我在子视图中添加了孙子视图后,在父视图中使用[self bringSubviewToFront: grandchildview]就不能正常工作了。请问有什么帮助吗?
-[UIView bringSubviewToFront:]
方法只对直接子视图起作用,不包括孙子视图。请记住,视图层次结构是一棵树,通常情况下,一个视图只知道它的“父视图”(或者超级视图)和它的直接“子视图”(或者子视图)。你需要这样做:
// First, get the view embedding the grandchildview to front.
[self bringSubviewToFront:[grandchildview superview]];
// Now, inside that container view, get the "grandchildview" to front.
[[grandchildview superview] bringSubviewToFront:grandchildview];
我的贡献是使用经过检查的解决方案的Swift版本。
self.bringSubviewToFront(self.grandchildview.superview!)
self.grandchildview.superview!.bringSubviewToFront(self.grandchildview)