iOS:使用 IB 为以编程方式创建的 UITableView 创建自定义单元格

Posted

技术标签:

【中文标题】iOS:使用 IB 为以编程方式创建的 UITableView 创建自定义单元格【英文标题】:iOS: Use IB to create custom cell for programmatically created UITableView 【发布时间】:2012-02-08 16:09:06 【问题描述】:

我有一个视图控制器,我在其中以编程方式添加 UITableView。但是,我想使用 IB 来创建我的自定义 UITableViewCell,以便在我以编程方式创建 UITableView 时使用。如果我在 IB 的控制器中没有 UITableView,因为我以编程方式创建它,我该怎么做?

我正在使用带有情节提要的 Xcode 4.2.1。

【问题讨论】:

see here for a tutorial 这里有一个更好的 XCode 4 altinkonline.nl/tutorials/xcode/uitableview/uitableviewcell @Javy 谢谢,有没有办法在情节提要中做到这一点,所以我不必创建 .xib? 我记得 WWDC 视频中关于能够在 ios 5 中直接在表格中设置它们的内容,但出于兼容性原因,我被困在 4.3 中。抱歉,我无法提供更多帮助。 【参考方案1】:

只需像往常一样以编程方式创建 UITableView,并在 cellForRowAtIndexPath 方法中使用

id cell = [dataTable dequeueReusableCellWithIdentifier:itemType];
if(!cell)

    NSArray *topLevelObject = [[NSBundle mainBundle] loadNibNamed:itemType owner:nil options:nil];
    cell = [topLevelObject objectAtIndex:0];

其中 itemType 是带有您的 xib 文件名称的字符串。

【讨论】:

xib文件是什么意思?我需要在我的故事板中创建一个 UITableViewController 吗? xib 文件是您在 Interface Builder 中创建自定义 UITableViewCell 时获得的文件。 我没有使用 xib。我上面说过我正在使用故事板。【参考方案2】:

您可以将 UITableView 添加为子视图并实现 tableView 的方法和 tutorial 将帮助您了解如何将自定义 UITablecell 添加到 UITableView。

【讨论】:

以上是关于iOS:使用 IB 为以编程方式创建的 UITableView 创建自定义单元格的主要内容,如果未能解决你的问题,请参考以下文章

我们可以将具有自动布局的 XIB 加载为以编程方式创建的没有自动布局的视图的子视图,并使用父视图调整子视图的大小吗?

iOS:以编程方式更改从 Interface Builder 设置的约束

iOS:以编程方式创建 UIWindow 导致位置错误

iOS开发:IB VS 纯代码

iOS开发:IB VS 纯代码

Swift:以编程方式添加视图时,UIScrollView 的可滚动内容大小不明确,而不使用 IB