以编程方式在ios中创建容器视图

时间:2015-03-25 13:10:55

标签: ios objective-c swift

我知道如何通过故事板在iOS中创建容器视图,但它不允许我在集合视图单元格中拥有容器视图。我希望其中一个单元格将另一个控制器作为容器加载。我该怎么做呢?

1 个答案:

答案 0 :(得分:10)

在我给你代码之前你必须意识到这肯定是一个坏主意。 UITableViewCells是高度可重用的,只是原始视图,没有真正的视图控制器(只是一个数据源)支持。容器视图被设计为嵌套控制器,而不仅仅放在UIView内(如表格单元格)。但我离题了:

以下是与container views相关的Apple文档(搜索容器视图)。

添加和删除儿童部分

// Adding a container view
[self addChildViewController:content];                 // 1
content.view.frame = [self frameForContentController]; // 2
[self.view addSubview:content.view];
[content didMoveToParentViewController:self];          // 3

// Removing a container view
[content willMoveToParentViewController:nil];  // 1
[content.view removeFromSuperview];            // 2
[content removeFromParentViewController];      // 3

配置单元格时,它内部很可能已经有一个容器视图(来自之前的配置)。因此,在添加新的之前,您应首先尝试重用已添加的内容。但同样,这个解决方案并不是真的可取,但你已经应该知道,因为IB阻止你做这件事。