【问题标题】:Dynamically add custom view to every view controller in iOS将自定义视图动态添加到 iOS 中的每个视图控制器
【发布时间】:2015-09-22 14:45:51
【问题描述】:

是否可以动态添加(例如通过扩展视图控制器)具有特定尺寸的自定义视图,例如每个视图控制器底部的 50 像素高度?

我正在使用 iOS8、自动布局和故事板,我不想修改故事板中的每个视图以将我的视图添加到底部。

我正在尝试以这种方式添加:

let view = CustomView(frame:CGRectMake(0, 0, self.view.frame.width, 50));
self.view.addSubview(view)

但是视图放置在当前控制器视图上,我需要能够放置在控制器视图下,例如广告横幅或标签栏。

【问题讨论】:

  • 如果你必须这样做,为什么不直接使用 UIViewController 子类将这个视图放在底部,然后你的所有 ViewController 都可以是这个自定义 ViewController 的子类而不是通常的 UIViewController。
  • 我只是在寻找将它添加到我的视图控制器的最简单方法,你能给我一些你的想法的例子吗?
  • 这可能是最简单的方法。我的建议不清楚吗?您是否尝试过编写子类?看看layoutSubviews 方法以及insertSubview(_ view: UIView, atIndex index: Int)

标签: ios uiviewcontroller autolayout


【解决方案1】:

假设您希望所有视图控制器都使用 相同 视图,我想我会更改我的根视图控制器。

我的新根视图控制器将有一个容器视图来托管您的旧根视图控制器,以及底部 50 像素高的视图。

既然您使用的是故事板,这应该不难——我认为您可以在很大程度上做到这一点,而无需编写任何代码。拖出一个新的视图控制器。添加容器视图和底部视图。设置约束。将 segue 连接器从容器视图拖到旧的根视图控制器,并将它们的类型设置为“嵌入”。将记分牌的入口点设置为新的控制器。

这是一张图片。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 2013-06-05
    • 1970-01-01
    相关资源
    最近更新 更多