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

Posted

技术标签:

【中文标题】sendSubviewToBack 不适用于从 xib 创建的视图【英文标题】:sendSubviewToBack does not work for a view created from xib 【发布时间】:2015-09-01 15:17:25 【问题描述】:

我有两个视图,一个是从界面生成器创建的,另一个是通过编程创建的。

我想做的是将编程创建的视图向前推进。但是xib创建的视图总是显示在第一个。在 viewDidLoad 中,我使用sendSubviewToBack: 来执行此操作,但似乎这段代码不起作用。

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

有没有好的解决方案来实现这一点?

我们将不胜感激您的想法和帮助。

【问题讨论】:

from viewdidload 如果您尝试这样做,它将无法正常工作。尝试在 Viewwillappear 中实现相同的功能。这是因为只有 viewcontoller 会被加载到 viewdidload 中。之后将加载所有子视图。 您在 de xib 文件中创建的视图是否正确链接到您的代码属性? 【参考方案1】:

您的问题很可能是您调用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。

【讨论】:

以上是关于sendSubviewToBack 不适用于从 xib 创建的视图的主要内容,如果未能解决你的问题,请参考以下文章

iOS 上的 sendSubviewToBack 不起作用

Junit 测试不适用于 Drools 5.4.0.Final 和 JDK 8

iOS 上的 Plupload 仅适用于新照片,不适用于相机胶卷

Grails 2.x createCriteria 'or' 不适用于嵌套关联

自定义类不适用于 UWP 中的 x:Bind

.Net 插件架构不适用于 Nuget