Objective c 构建自定义UITableViewCell的正确方法

Objective c 构建自定义UITableViewCell的正确方法,objective-c,ios,uitableview,subclass,Objective C,Ios,Uitableview,Subclass,我一直在想UITableView及其单元格有一段时间了UITableView是一个非常方便的UIView子类,但是在UITableViewCell上有许多预先确定/强制的内容。我想知道为UITableView创建自定义UIView(最终将成为UITableViewCell)的最佳方法是什么 单元格具有必须设置的特定样式,并且除了其内容之外,还有预定的UILabels和附件视图是完全不可变的。我发现这是一个很大的浪费,但仅仅给单元格一个自定义内容视图(和背景视图,如果愿意的话)并不能阻止或删除这些

我一直在想
UITableView
及其单元格有一段时间了
UITableView
是一个非常方便的UIView子类,但是在
UITableViewCell
上有许多预先确定/强制的内容。我想知道为
UITableView
创建自定义
UIView
(最终将成为
UITableViewCell
)的最佳方法是什么

单元格具有必须设置的特定样式,并且除了其内容之外,还有预定的
UILabel
s和附件视图是完全不可变的。我发现这是一个很大的浪费,但仅仅给单元格一个自定义内容视图(和背景视图,如果愿意的话)并不能阻止或删除这些进程或恢复内存

有没有办法创建一个更轻版本的
UITableViewCell
子类?或者有没有一种方法可以将UIView与选择方法一起使用(而不是使用
UIScrollView
创建自定义的
UITableView


任何建议都将不胜感激。

有几种方法:

从XIB文件:

使用图纸:

  • (第4和第5个示例)

    • 似乎没有答案。UITableViewCells将始终自动添加UILabel和其他视图。不过,我不确定在设置它们之前它们是否已分配。它们可能有自定义的设置/分配方法。

      UITableView是一个UIScrollView子类,而不是UIView子类。@max_uu和UIScrollView是UIView的子类,所以我从UITableView往下走了两层。是的,没错。但是UITableView不是UIView的子类。子类是继承其超类并向其添加更多内容的类,因此虽然它不是UIView的直接子类,但它仍然是UIView的间接子类。标签和附件是属性。这意味着它们总是可以访问的。访问textLabel和detailsTextLabel并设置文本将立即设置文本,而无需在我的部件上分配或设置任何帧。这要么意味着标签是预设/预分配的,要么它们有自定义的setText函数,如果它们以前没有分配(因为我确信苹果不会在以前的分配之上重新分配)。很容易验证
      UITableViewCell
      是否在调试程序中用几分钟时间进行延迟加载。您可以将任何内容添加到
      contentView
      ,或子类并添加任何其他属性,并且
      textLabel
      引用的标签仍然不会被分配。因此,你的问题的正确答案是“不要使用你不需要的东西。”