ios - 以编程方式在 ios 中创建容器 View

标签 ios objective-c swift

我知道如何通过 Storyboard在 iOS 中创建容器 View ,但它不允许我在 Collection View 单元格中创建容器 View 。我希望其中一个单元格将另一个 Controller 作为容器加载。我该怎么做呢?

最佳答案

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

这是与 container views 相关的 Apple 文档(搜索容器 View )。

添加和删除子项部分下:

// 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

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

关于ios - 以编程方式在 ios 中创建容器 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29256637/

相关文章:

ios - 每次安装后 NSDocumentDirectory 都会更改

ios - 使用 SFSpeechRecognizer 的正确方法?

ios - 选择时如何重新加载标签栏项目?

ios - 使 UIWebview 显示桌面而不是移动页面

ios - 在UITableView中划分单元格

ios - 如何从 iOS 中的流接收数据 (swift)

ios - 访问嵌套的 Firebase 值

ios - 根据枚举中的值自动填充 Switch 语句中的 Cases

objective-c - 事件处理程序中的 NULL 属性(cocoa 应用程序)

ios - 无法使用 Swift 4 将数据写入 Firebase 实时数据库