2

当我将图像添加到 UITableView 时,我注意到第一次将它们添加到单元格时,我得到了一个生涩的滚动。

我没有远程加载它们,而是我的代码如下所示:

static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [self.tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];

MyObject *object = [self.myObjects objectAtIndex:indexPath.row]; 
cell.imageView.image = [UIImage imageNamed:object.imageName];

return cell;

(没有 if (cell == nil) 行,因为我在视图中注册单元类确实加载了)

这是一种不好的做法吗?如果是这样,我应该如何将主包中的图像添加到我的单元格的 imageView 中?

4

1 回答 1

1
  1. 尝试减小图像的大小

  2. 如果由于任何原因无法减小大小,请尝试以下代码(operationQueue 是 NSOperationQueue 实例的 ivar)

    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
    {
        UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"identifier"];
        [operationQueue addOperationWithBlock:^{
            NSString *imagePath = [[NSBundle mainBundle] pathForResource:@"name" ofType:@"jpg"];
            UIImage *image = [[UIImage alloc] initWithContentsOfFile:imagePath];
            [[NSOperationQueue mainQueue] addOperationWithBlock:^{
                UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
                cell.imageView.image = image;
            }];
        }];
        return cell;
    }
    
于 2012-10-31T01:46:59.020 回答