UIView。如何将子视图放置在其父级超级视图后面?

4

我正在处理一些UIView的操作,但卡住了。改变兄弟子视图的“z”顺序很简单。[mySuperview sendSubviewToBack:mySubview]将mySubview放在所有兄弟视图后面。

但是如何将一个子视图放在其父视图后面呢?

谢谢, 道格


2
这是不可能的,因为它违反了视图和父视图之间的基本关系。 - Mike Abdullah
2个回答

3
据我所知,你不能这样做。您需要将其从父级中移除,然后将其添加到父级的父级的子视图中。
UIView *parent = view.superview;
[view removeFromSuperview];

/* Adjust frame to realign under parent view */

[parent.superview addSubview:view];

2

您可以将两个视图放入容器视图中,这样您就可以正确地将一个视图放在另一个视图后面,而不会影响那些并不真正用于容纳任意视图的父视图(虽然这样做可能也能正常工作)。


谢谢,肯德尔。是的,那似乎是我唯一的选择。很遗憾不能更改父子之间的“z”关系。可能与iPhone合成引擎有关。干杯。 - dugla
1
我还遇到另一件事,你可以尝试更改视图层的“anchorPointZ”属性...我不确定应该如何设置它。 - Kendall Helmstetter Gelner

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接