IOS:在某些类中使用自定义单元格

Posted

技术标签:

【中文标题】IOS:在某些类中使用自定义单元格【英文标题】:IOS: use custom cell in some classes 【发布时间】:2013-07-17 11:49:33 【问题描述】:

当我创建一个自定义单元格时,我会创建一个 UITableViewCell 类并添加一个带有表格单元格的笔尖;很清楚。 我想了解当我应该在某些使用 tableview 的类中使用此自定义单元格时如何管理这种情况。

例如,我有一个名为“FirstViewController”的视图控制器,在这个视图控制器中我有一个 tableview,我导入 tableview 单元格的类并创建一个 IBOutlet 供其参考

#import "MyCell.h"

IBOutlet MyCell *mycell;

在身份检查器的 MyCell 类的文件所有者中,我设置了 FirstViewController 的类,这样我可以轻松地链接我的自定义单元格的 IBOutlet。

这样我只能将 MyCell 用于 FirstViewController,有没有办法将 MyCell 共享给其他类作为 SecondViewController?

谢谢

【问题讨论】:

【参考方案1】:

您可以创建 UITableViewCell 的子类,例如 CustomCell。创建一个 xib 文件,添加一个 UITableViewCell 作为 xib 的根。将UITableViewCell 的身份更改为CustomCell。将插座连接到 CustomCell 的元素。但不要将所有权授予任何 viewController。

在您想要的任何 viewController 中的 tableView:cellForRowAtIndexPath: 中使用以下代码实例化

CustomCell *customCell = [[NSBundle mainBundle]loadNibNamed:@"CustomCell" 
                                                      owner:nil 
                                                    options:nil][0];

【讨论】:

按他的方式?静态 NSString *MyIdentifier = @"MyIdentifier";我的标识符 = @“数据单元”; DataCell *cell = (DataCell *)[list dequeueReusableCellWithIdentifier:MyIdentifier]; if(cell == nil) [[NSBundle mainBundle] loadNibNamed:@"DataCell" owner:self options:nil];单元格 = 数据单元格; @blackguardian 这几乎是正确的,但是您建议的方式仍然需要为 VC 中的单元格提供 IBOutlet。如果您保留 IBOutlet,则需要将该特定 VC 作为单元的所有者。你想避免那个仪式。 if(!customCell)customCell = [[NSBundle mainBundle]loadNibNamed:@"CustomCell" owner:nil options:nil][0]; 【参考方案2】:

“有没有办法将其他类的 MyCell 共享为 SecondViewController?” 我会跳过 IB 案例并以编程方式添加到 SecondViewController。

如果你想坚持使用 IB,那么你必须创建一个自定义组件,添加到 XCode 中,这是可能的,但需要更多时间。

【讨论】:

以上是关于IOS:在某些类中使用自定义单元格的主要内容,如果未能解决你的问题,请参考以下文章

iOS - 如何在自定义单元格中使用继承?

如何在 iOS 中管理自定义单元格标签值?

iOS:自定义表格视图单元格中的约束

自定义单元格未显示

使用多个视图 iphone 计算自定义单元格高度

在 iOS 中使用自定义单元格时无法查看 UITableViewCell