为啥我必须删除为 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 的子类中?的主要内容,如果未能解决你的问题,请参考以下文章
当我使用自动布局和 xib 制作 uitableviewcell 时,为啥要将 translatesAutoresizingMaskIntoConstraints 设置为 YES?
如果我快速点击,为啥 UITableViewCell 选择不绘制?