所以这就是我要解决的问题。
在每个
viewController
我试图插入广告和实际控制元素。我在raywenderlinch.com上完成了几个教程,以了解人们如何专业地在他们的应用中放置广告。他们使用UIViews在视图控制器的主视图下有两个视图。所以我完全理解一个subview
持有广告而另一个持有实际应用内容。如果加载广告占用屏幕,或者让其他视图具有所有可用区域。
在我回到xcode之后,我开始编写我在那里学习的方式。但是当我在故事板上放下UIView
时,我看到了containerView
,我认为在编写教程时我并没有这样做。
所以我在这里询问这两种方法及其利弊
所以基本上是UIView
vs ContainerView
。我应该采取哪种方式,为什么?
任何帮助将不胜感激。
答案 0 :(得分:27)
当您已有视图时使用UIView
,并且您不需要专用的视图控制器来构建和处理其中的交互。
从 UIView 帮助页面:
UIView对象声称其封闭的
superview
(在视图层次结构中的父级)的矩形区域,并负责该区域中的所有绘图......
简化结构: YourViewController ---(has)---> UIView
当您需要在已有的视图控制器中嵌入另一个视图控制器时,可以使用UIContainerView
。嵌入式视图控制器负责返回UIViewContainer
占用的区域的视图。因此,您的UIContainerView
知道在其占据的区域内使用哪个视图控制器来呈现UIView
。
从 UIContainerView 帮助页面:
容器视图定义视图控制器的视图子图中可包含子视图控制器的区域。
简化结构: YourViewController ---(has)---> SubViewController ---(has)---> UIView
SubViewController返回一个视图并处理它的事件。
答案 1 :(得分:8)
作为替代答案,您还可以考虑用例而不是技术差异。例如:为什么要使用容器视图?
容器视图的常见用途是直接在故事板中重用(共享)视图。以前,重用视图需要创建单独的“xib”文件,并在加载视图控制器时以编程方式添加该视图。
上面的图片来自this极其简单易懂的指南,指导您如何设置2个视图控制器之间共享的容器视图。
关于何时使用它的一些其他想法:
希望这有助于那些试图弄清楚容器视图何时适用于他们的人。如果您有其他示例用例,请编辑/添加它们或将它们留在评论中!
答案 2 :(得分:1)
如果你详细看到UIView类类型的这些容器视图。要了解我们为什么需要containerView的见解,您应该看到以下部分
在大多数情况下,容器视图控制器就像内容视图控制器。它管理视图和内容,与应用程序中的其他对象协调,并响应响应程序链中的事件。在设计容器控制器之前,您应该已经熟悉设计内容视图控制器。 “创建自定义内容视图控制器”中的设计问题也适用于创建容器。
有关容器视图goto link的更多详细信息 但在开始之前,你应该了解
您也可以查看this tutorial如何使用容器视图。
因此你可以选择这两种方法。 希望这会帮助你。快乐的编码:)