我知道如何通过Storyboard在iOS中创建容器视图,但是它不允许我在集合视图单元格中拥有一个容器视图。我希望其中一个单元格可以加载另一个控制器作为容器。我该如何实现这个功能?
我知道如何通过Storyboard在iOS中创建容器视图,但是它不允许我在集合视图单元格中拥有一个容器视图。我希望其中一个单元格可以加载另一个控制器作为容器。我该如何实现这个功能?
在我给你代码之前,你必须意识到这肯定是个坏主意。 UITableViewCells
高度可重用,并且只是由数据源支持的原始视图,而不是由真正的视图控制器支持。容器视图被设计为嵌套控制器,而不仅仅是放置在 UIView
中(如表格单元格)。但是我岔开了话题:
这里是与容器视图 相关的 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已经阻止了你这样做。
content.view
)。 - Firo