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 创建的视图的主要内容,如果未能解决你的问题,请参考以下文章
Junit 测试不适用于 Drools 5.4.0.Final 和 JDK 8
iOS 上的 Plupload 仅适用于新照片,不适用于相机胶卷