相关疑难解决方法(0)

如何设置表视图单元附件视图以保留以前初始化的UIImageView?

假设我的视图控制器中有一个属性,定义如下:

@property (nonatomic, retain) UIImageView *checkmarkOffAccessoryView;
Run Code Online (Sandbox Code Playgroud)

@synthesize在实现中,将release-dealloc初始化并-viewDidLoad如下所示:

self.checkmarkOffAccessoryView = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"checkmarkOff.png"]] autorelease];
Run Code Online (Sandbox Code Playgroud)

到现在为止还挺好.

当我在我的表视图委托中使用它作为多个单元格的附件视图时,会发生两件事:

  1. 只有一个单元的附件视图显示图像
  2. 应用程序UI冻结.

该应用程序不会崩溃,因为我可以说,UI只是变得没有响应.这是在模拟器和设备上.

这是我如何使用我的单元格初始化属性:

- (UITableViewCell *) tableView:(UITableView *)tv cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    // initialize or dequeue cell...

    if (condition)
        cell.accessoryView = self.checkmarkOffAccessoryView;
    else
        cell.accessoryView = nil;
}
Run Code Online (Sandbox Code Playgroud)

使用上述代码,只有一个单元显示附件视图并且UI冻结.

如果我UIImageView直接在委托方法中初始化实例,我会得到所有满足条件的单元格显示附件视图,并且我没有遇到UI冻结:

- (UITableViewCell *) tableView:(UITableView *)tv cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    // initialize or dequeue cell...

    if (condition)
        cell.accessoryView = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"checkmarkOff.png"]] autorelease];
    else
        cell.accessoryView = …
Run Code Online (Sandbox Code Playgroud)

iphone uitableview uiimageview

7
推荐指数
2
解决办法
5559
查看次数

标签 统计

iphone ×1

uiimageview ×1

uitableview ×1