为啥我必须删除为 UITableViewCell 添加的子视图,而不是在 UITableViewCell 的子类中?

Posted

技术标签:

【中文标题】为啥我必须删除为 UITableViewCell 添加的子视图,而不是在 UITableViewCell 的子类中?【英文标题】:Why do I have to remove added subviews for UITableViewCell but not in a Subclass of UITableViewCell?为什么我必须删除为 UITableViewCell 添加的子视图,而不是在 UITableViewCell 的子类中? 【发布时间】:2013-01-12 22:00:58 【问题描述】:

所以我在我的 UITableViewCell 中添加标签等,当我添加子视图时,我知道我需要删除它们,否则它们会保持故障...

我可以理解,但是现在当我使用自定义单元类时,我不再需要删除添加的子视图。这是为什么呢?

我只是在自定义单元类的 init 方法中使用自定义框架(不是通过 IB)初始化标签。

【问题讨论】:

【参考方案1】:

我怀疑你留下了一个额外的参考。请注意,[[foo alloc] init] 返回一个带有 +1 的 ref,添加子视图会增加一个 ref。

使用 addsubview 的正常方法是像这样(示例)传递 autoreleased ref。

[cell addSubview:[UILabel label:args]];

或者这个(例子):

[cell addSubview:[[[Foo alloc] init] autorelease]];

【讨论】:

这对我来说不是很清楚......这就是我添加子视图的方式。

以上是关于为啥我必须删除为 UITableViewCell 添加的子视图,而不是在 UITableViewCell 的子类中?的主要内容,如果未能解决你的问题,请参考以下文章