自定义UITableViewCell的首选方法

时间:2014-08-26 17:49:26

标签: ios objective-c uitableview ios7

我试图在初步研究后自定义一个UITableViewCell似乎我可以通过两种方式自定义UITableViewCell

选项1:

如TableViewCell iOS documentation中所述,我可以使用storyboard添加自定义标签,如果有任何使用界面构建器,则指定UI约束,然后使用viewWithTag从代码访问标签,如下所述

label = (UILabel *)[cell viewWithTag:1];
label.text = @"something"

选项2:

我可以创建一个自定义xib文件并使用界面构建器设计表格单元格并指定UI约束(如果有)并且具有从UITableViewCell继承的自定义类,并使用接口构建器将所有标签作为属性连接到相应的标签并使用以下内容用于基于xib创建UITableViewCell的代码

[tableView registerNib:[UINib nibWithNibName:@"MyCustommCell" bundle:nil]forCellReuseIdentifier:@"resuseIdentifier"];
MyCustomTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"reuseIdentifier"];
MyCustomTableViewCell.myCustomLabel.text = @"something";

我同意第二个选项与第一个选项相比有点耗时,但它比第一个选项具有以下优势:

  • 我可以将它重复用于类似风格的UITableViewCell
  • 与选项1相比具有更好的可读性
  • 更好地分离关注点,UITableViewController不必担心如何在接口构建器中布置单元格,而是将其正确委派给单独的xib文件

尽管有上述优势,我更担心为什么Apple文档在解释如何自定义UITableViewCell时没有选择第二个选项?我错过了一些明显的东西吗?或者与第一种方法相比,第二种方法是否存在任何性能问题?

1 个答案:

答案 0 :(得分:0)

从我这里来说,为什么苹果文档中存在或不存在某些内容,但从我的猜测来看,文档中没有明确指出选项2的一个原因是你可以直接在故事板中设置它&# 39;显示UITableView,作为原型单元格。这基本上是nib UITableViewCell的GUI内联,它将自动正确设置你在Option 2中描述的所有方法,这样你就不需要调用它们中的任何一个。