sendSubviewToBack不适用于从xib创建的视图

时间:2015-09-01 15:17:26

标签: ios objective-c view hierarchy

我有两个视图,一个是从界面构建器创建的,另一个是以编程方式创建的。

我想要做的是将以编程方式创建的视图转发。但是xib创建的视图总是显示在第一个上。在viewDidLoad中,我使用sendSubviewToBack:来执行此操作,但似乎此代码无法正常工作。

有些人可能会说我应该仅通过xib(或仅通过代码)创建这些视图。但我不想这样做。

有没有一个很好的解决方案来实现这个目标?

非常感谢您的想法和帮助。

1 个答案:

答案 0 :(得分:0)

最有可能的问题是,您使用的视图不是接收方的直接子视图来调用sendSubviewToBack:

sendSubviewToBack: / bringSubviewToFront:方法适用于视图的直接子视图。所以如果你是一个像这样的视图层次结构:

A
 \
  B - D
  |
  C - E

(B和C都是A的子视图; B有子视图D,C有子视图E)

然后你可以[A sendSubviewToBack:C],但你不能[A sendSubviewToBack:E]

请参阅also my answer to an old question that might help you