gpt4 book ai didi

ios - 在 IOS 的 ImageView 中从 API 多次加载图像

转载 作者:行者123 更新时间:2023-11-28 18:49:20 26 4
gpt4 key购买 nike

我制作了一个自定义的 Tableview,它有一个 ImageView 和一些从 API 获取值的标签。

这是一个自定义表格,其中图像和标签从与房地产相关的 API 接收数据。

当我的自定义表格加载时,值开始来自 API。

实际问题发生在 ImageView 中。我在 ImageView 中设置了本地镜像,当来自 API 的数据没有图像时,它应该显示本地镜像,否则数据应该显示客户在表单中提交的原始图像。

现在,当数据首先在 ImageView 中开始来自 API 时,它显示本地镜像,而不是当图像开始来自 API 时,它开始显示本地镜像,但是当我们在 ImageView 中向下滚动时,它在 ImageView 中显示相同的图像并重复多次,我们无法识别哪个是原始图像。

如果有人给我发他的电子邮件,我可以提供代码,他可以获得所有工作场景。

enter image description here

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *cellIdentifier=@"Cell";
CustomTableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:cellIdentifier forIndexPath:indexPath];

StringData* cust = [_Title objectAtIndex:indexPath.row];

cell.Title.text = cust.title1;
cell.area.text=cust.Area;
cell.city.text=cust.City;
cell.phone.text=cust.phoneno;
cell.price.text=cust.Price;
cell.location1.text=cust.location;
cell.name1.text=cust.dealer_name;
cell.email1.text=cust.dealer_email;
cell.type1.text=cust.property_type;
cell.status1.text=cust.status;
cell.room1.text=cust.rooms;
cell.washrooms.text=cust.bath;
cell.floor1.text=cust.floors;
cell.imagetext.text = cust.images;

tii=cell.Title.text;
NSLog(@"Tittttttle is %@",tii);


NSURL *url = [NSURL URLWithString:cust.images];
NSURLSessionTask *task = [[NSURLSession sharedSession] dataTaskWithURL:url completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
if (data) {
UIImage *image = [UIImage imageWithData:data];
if (image) {
dispatch_async(dispatch_get_main_queue(), ^{
cell.images1.image = image;
});
}
}
}];
[task resume];

return cell;
}

最佳答案

您似乎没有将图像存储到本地应用程序内存中。您尝试在每次出现单元格时加载图像。所以你每次都下载图像。

最佳解决方案:

您需要使用 SDWebImage 存储图像本地内存.

objective-C :

#import <SDWebImage/UIImageView+WebCache.h>
...
[imageView sd_setImageWithURL:[NSURL URLWithString:@"IMAGE_URL"]
placeholderImage:[UIImage imageNamed:@"placeholder.png"]];

swift :

import SDWebImage

imageView.sd_setImage(with: URL(string: "IMAGE_URL"), placeholderImage: UIImage(named: "placeholder.png"))

如果您是第一次加载图像,那么它会下载图像并将其存储到本地内存中。所以从第二次开始,它将从本地加载。

关于ios - 在 IOS 的 ImageView 中从 API 多次加载图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44983299/

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