UITableview单元格向下滚动不顺畅

问题描述 投票:0回答:1

我正在寻找有关我的自定义UITableview单元格图像的解决方案。

我在我的自定义UITableview单元格中加载了很少的信息(标签+ UIimageview),但是自从iOS 12向下滚动时它不顺畅(它在我第一次向下滚动时落后,然后在我滚动时它很平滑向上滚动,可能与缓存图像有关)。

RecipeTableCell *cell = (RecipeTableCell *)[self.UITableView 
dequeueReusableCellWithIdentifier:CellIdentifier];

// Configure the cell...
if (cell == nil) 
{
    cell = [[RecipeTableCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
// Display recipe in the table cell
Recipe *recipe = nil;

 recipe = [recipes objectAtIndex:indexPath.row];
 recupereNomFavoris = [[recipes objectAtIndex:indexPath.row] valueForKey:@"favoris"];
 recupereImage = [[recipes objectAtIndex:indexPath.row] valueForKey:@"image"];
 recupereNom = [[recipes objectAtIndex:indexPath.row] valueForKey:@"name"];
 recupereLien = [[recipes objectAtIndex:indexPath.row] valueForKey:@"lien"];
 recupereGenre = [[recipes objectAtIndex:indexPath.row] valueForKey:@"genre"];

    }
}

//Display cells informations
cell.nameLabel.text = recipe.name;
cell.genre.text = recipe.genre;
cell.thumbnailImageView.image = [UIImage imageNamed:recipe.image];

我尝试添加异步解决方案,但加载图像需要1秒钟以上。

dispatch_queue_t queue =dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0ul);
dispatch_async(queue, ^{
    UIImage *image = [UIImage imageNamed:recipe.image];// Load from file or Bundle as you want                
    dispatch_sync(dispatch_get_main_queue(), ^{
        cell.thumbnailImageView.image = image;
    });
});

所有图像大小都在1到20kb之间,我在本地加载它们。我在我的IB中使用约束(重量和宽度+布局约束)。

我试图实现SDWEBIMAGE,但它只允许您加载URL图像。

有什么建议 ?我正在努力解决这个问题

ios objective-c uitableview uiimageview
1个回答
0
投票

在这种情况下,图像会导致您需要使用图像延迟加载的错误,您可以使用以下库代码来设置延迟加载,这样做的好处是您可以设置占位符图像并将UIimageview分配给图像,

SDWebimage:https://github.com/SDWebImage/SDWebImage

import SDWebImage

imageView.sd_setImage(with: your image path or data, placeholderImage: UIImage(named: "placeholder.png"))

AlamofireImage:https://github.com/Alamofire/AlamofireImage

imageView.af_setImage(withURL: image path, placeholderImage: UIImage(named: "placeholderImage"))
© www.soinside.com 2019 - 2024. All rights reserved.