【发布时间】:2012-06-02 07:18:00
【问题描述】:
在 UITableViewController 中,我正在实例化 UITableViewCells,其中一些单元格由附件视图突出显示。对我来说,这是可行的:
// works for me
UIImageView *favoriteImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"icon"]];
[cell setAccessoryView:favoriteImageView];
对我来说,为多个单元重复实例化同一个视图似乎很浪费;但是,当我尝试重新使用与多个单元格的附件视图相同的视图时,我的应用程序以一种悲惨的方式失败(完全黑屏,没有显示视图)我无法调试。我是否在方法中将 favoriteImageView 声明为静态,例如
// doesn't work for me
static UIImageView *favoriteImageView = nil;
if (!favoriteImageView)
favoriteImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"icon"]];
[cell setAccessoryView:favoriteImageView];
或者将它声明为 ivar 并在 init 中定义它,这样我就可以得到:
// doesn't work for me
[cell setAccessoryView:[self favoriteImageView]];
在这两种不工作的情况下,当一个单元格设置了它的附件视图时,它可以正常显示。一旦我标记第二行以便将附件视图设置为引用相同的视图,整个事情就会挂起。
构造一个 UIView 和/或配置一个 UITableViewCell 以使同一个 UIView 可以被多个 UITableViewCells 的附件视图引用的要求是什么?
【问题讨论】:
标签: ios uitableview