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:在某些类中使用自定义单元格的主要内容,如果未能解决你的问题,请参考以下文章