gpt4 book ai didi

ios - 表格 View 滚动平滑与 url 图像

转载 作者:行者123 更新时间:2023-11-28 22:05:36 25 4
gpt4 key购买 nike

我有一个 TableView ,它从 url 地址加载标题和图像。由于我添加了图像,因此滚动不流畅。我已将背景更改为清除。图片分辨率低。我更喜欢使用 url 访问它们,而不是下载图像并在应用程序上重新上传。期待您的解决方案,使滚动顺畅。谢谢

    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
TableCell *cell = [tableView dequeueReusableCellWithIdentifier:@"TableCell" forIndexPath:indexPath];
NSString *str = [[feeds objectAtIndex:indexPath.row] objectForKey: @"title"];
[[cell textLabel] setNumberOfLines:0]; // unlimited number of lines
[[cell textLabel] setFont:[UIFont systemFontOfSize: 16.0]];
cell.backgroundColor = [UIColor clearColor];
cell.contentView.backgroundColor = [UIColor clearColor];

cell.TitleLabel.text=str;

UIImage *pImage=[UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:feeds2[indexPath.row]]]];;
[cell.ThumbImage setImage:pImage];

return cell;

最佳答案

替换您在 cellForRowAtIndexPath 中的代码:

在这行 cell.TitleLabel.text=str; 之后

通过这种方式,您可以在后台加载每张图片,并且一旦加载,相应的单元格就会在主线程上更新。

 dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^(void) {
NSData *imgData = NSData *imgData = [NSData dataWithContentsOfURL:[NSURL URLWithString:feeds2[indexPath.row]]];
if (imgData) {
UIImage *image = [UIImage imageWithData:imgData];

dispatch_sync(dispatch_get_main_queue(), ^(void) {
UIImage *image = [UIImage imageWithData:imgData];
if (image) {
cell.ThumbImage.image = image;
}
});
});

更好的方法是缓存图像,这样你就不需要每次都下载它们,表格会滚动。

这里有一些非常好的引用来实现这一点。

LazyTableImages Reference

SDWebImage

UIImageView+AFNetworking

关于ios - 表格 View 滚动平滑与 url 图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24110015/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com