在 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 的附件视图的要求是什么?