【问题标题】:How can I insert a subview below the other subviews如何在其他子视图下方插入子视图
【发布时间】:2012-04-20 13:05:29
【问题描述】:

每个人。

我在 xib 文件中绘制了一些标签,并且 使用代码添加背景视图,但背景视图 在这些标签的前面,所以我看不到它们。所以, 我的问题是如何在这些下方添加背景视图 标签。

提前谢谢你。

【问题讨论】:

    标签: ios subview addsubview


    【解决方案1】:

    可以使用insertSubview:atIndex:的方法

    [self.view insertSubview:backgroundView atIndex:0];
    

    【讨论】:

      【解决方案2】:

      如果您使用 Google 搜索 UIView,您最终会看到文档 - UIView Class Reference

      然后您需要查看方法列表,直到找到听起来大致符合您需求的方法,例如这两个:

      - (void)insertSubview:(UIView *)view atIndex:(NSInteger)index
      

      - (void)insertSubview:(UIView *)view belowSubview:(UIView *)siblingSubview
      

      此时,您只需阅读有关方法行为方式的描述,然后选择最容易为您的设计实现的方法。如果你在提问之前尝试自己找到答案,这对你自己的学习很有好处

      【讨论】:

      • 谢谢!我会先google一下,找到答案。您的建议很有帮助。
      • 一旦您习惯于查看文档,您会发现更容易找到答案 - 只是很难知道从哪里开始
      【解决方案3】:

      在 IB 中,视图的子视图列在该视图下的层次结构中。在该层次结构中出现在其兄弟姐妹之上的子视图将在渲染视图中出现在它们之下。所以在下面的例子中,in99:99 AM 标签在运行时出现在Sign In 按钮下方。

      如果您的背景只是一个 UIImageView,请考虑将视图添加到您的 NIB,然后在运行时设置它的 UIImage。这样,您就不会感到困惑。另外,what Paul.s said

      【讨论】:

      • OP 正在讨论在 xib 之外的代码中添加视图。
      【解决方案4】:

      Swift 3 及更高版本。

      view.insertSubview(theViewYouWantToAdd, at: 0)
      

      【讨论】:

        【解决方案5】:

        你可以在 Swift 3 中调用这个方法

        view.insertSubview(yourSubView, at: 0)
        

        view.sendSubview(toBack: yourSubView)
        

        【讨论】:

          【解决方案6】:

          https://medium.com/swift-programming/dynamic-layouts-in-swift-b56cf8049b08

          使用 VerticalLayout 作为父级。非常简单有效

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多