15

我正在尝试使用UITableViewCell样式设置为的自定义子类UITableViewCellStyleSubtitle并将其与registerClass:forCellReuseIdentifier:. 但是,我不确定如何执行此操作。

我的想法是重写init方法并调用

self = [super initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:myReuseIdentifier];

在其中。但是,我不知道init调用了哪个方法(或者这是否是正确的方法。)

我试图拦截以下所有 init 方法,但在使单元格出列时,它们似乎都不是正确的方法:

  • init
  • initWithCoder
  • initWithFrame

我已经确认dequeueReusableCellWithIdentifier:forIndexPath:返回的是正确类型的单元格,所以我知道它正在被创建。我只是不知道init正在调用哪个方法,所以我无法设置默认样式。

4

2 回答 2

36

我相信它调用 initWithStyle:reuseIdentifier: 为表格单元格初始化。

来自苹果文档

dequeueReusableCellWithIdentifier:

如果您为指定的标识符注册了一个类并且必须创建一个新单元格,则此方法通过调用其 initWithStyle:reuseIdentifier: 方法来初始化该单元格。对于基于 nib 的单元格,此方法从提供的 nib 文件加载单元格对象。如果现有单元格可供重用,则此方法将改为调用该单元格的 prepareForReuse 方法。

Ĵ

于 2013-03-06T04:53:29.233 回答
2

[[打头]]我是个白痴!我试图在 init 调用的主体中添加的方法......

initWithStyle:reuseIdentifier:

......我应该压倒一切的!

在这里找到...

使用 iOS 6 UITableView dequeueReusableCellWithIdentifier:forIndexPath 时设置 UITableViewCell 的样式:

投票结束我自己的问题。不过,希望这篇文章的简洁性可以帮助其他人避免阅读另一篇文章中的多余细节。

于 2013-03-06T04:51:12.840 回答