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

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

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

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

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

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

【问题讨论】:

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

标签: ios objective-c view hierarchy


【解决方案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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-26
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多