UIView与容器视图

Ali*_*lix 11 xcode uiview ios iad uicontainerview

所以这是我试图解决的问题.

在每一个viewController我试图插入广告和实际的控制元素.我在raywenderlinch.com上完成了几个教程,以了解人们如何专业地在他们的应用中放置广告.他们使用UIViews在视图控制器的主视图下有两个视图.所以我完全理解一个人subview持有广告而另一个持有实际应用内容.如果加载广告占用屏幕,或者让其他视图具有所有可用区域.

在我回到xcode之后,我开始编写我在那里学习的方式.但是当我UIView在故事板上播放时,我看到了containerView,在编写教程时我觉得它不存在.
所以我在这里询问这两种方法及其优缺点.
所以基本上它UIViewVS ContainerView.我该怎么做,为什么?
任何帮助将不胜感激.

Kee*_*nle 28

UIView已经拥有视图时使用,并且您不需要专用的视图控制器来构建和处理其中的交互.

UIView帮助页面:

UIView对象声称其封闭的矩形区域superview(其视图层次结构中的父级)并负责该区域中的所有绘图...

简化结构: YourViewController ---(has)---> UIView


UIContainerView需要在已有的视图控制器中嵌入另一个视图控制器时使用.嵌入式视图控制器负责返回UIViewContainer占用区域的视图.因此,您UIContainerView知道UIView在其占据的区域内使用哪个视图控制器进行渲染.

UIContainerView帮助页面:

容器视图定义视图控制器的视图子图中的一个区域,该区域可以包含子视图控制器.

简化结构: YourViewController ---(has)---> SubViewController ---(has)---> UIView

SubViewController返回一个视图并处理其事件.


Dav*_*e G 8

作为替代答案,您还可以考虑用例而不是技术差异.例如:为什么使用容器视图?

容器视图的常见用途是直接在故事板中重用(共享)视图.以前,重用视图需要创建单独的"xib"文件,并在加载视图控制器时以编程方式添加该视图.

示例容器视图的用例

上面的图片来自这个非常简单易于理解的指南,它将指导您如何设置2个视图控制器之间共享的容器视图.

关于何时使用它的一些其他想法:

  • 导航栏是UINavigationController的一部分,UINavigationController 是一个容器视图控制器.因此,如果您想构建自定义替代方案,则可能使用容器视图.
  • 容器可能会随时帮助您暂时在当前VC上显示复杂视图但不能/不希望以模态方式显示另一个VC.此方法仍允许您在界面构建器中构建该临时视图,为其设置自动布局约束等
  • 我还找到了一个指南,解释了有一种方法可以根据情况切换出不同的容器视图,允许VC拥有非常动态的子部分,而无需以编程方式构建这些子部分.来自该指南的图片展示了我所指的内容:

使用多个容器视图选项

希望这有助于那些试图弄清楚容器视图何时适用于他们的人.如果您有其他示例用例,请编辑/添加或留在评论中!


Shu*_*ndu 1

如果您详细查看这些 UIView 类类型的容器视图。为了深入了解为什么我们需要containerView,你应该看到下面的部分

\n\n
\n

在大多数方面,容器视图控制器就像内容视图控制器。它管理视图和内容,与应用程序中的其他对象协调,并响应响应者链中的事件。在设计容器控制器之前,您应该已经熟悉设计内容视图控制器。\xe2\x80\x9cCreating Custom Content View Controllers\xe2\x80\x9d 中的设计问题在创建容器时也适用。

\n
\n\n

有关容器视图的更多详细信息,请转到链接\n但是在开始之前,您应该了解

\n\n

您也可以查看本教程以了解如何使用容器视图。

\n\n

因此,您可以采用这两种方法。\n希望这会对您有所帮助。快乐编码:)

\n