gpt4 book ai didi

ios - TableView 图像仅在向下滚动时显示

转载 作者:行者123 更新时间:2023-11-29 02:14:59 26 4
gpt4 key购买 nike

我正在加载带有图像的表格 View 。这些是异步加载的。图像只会在我滚动 tableview 时显示。

我知道这是因为 tableview 中的可重用单元格。我的代码如下。

我怎样才能避免这种情况。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
MyCell *c = [tableView dequeueReusableCellWithIdentifier:@"cell"];

if (c == nil)

{

c = [[MyCell alloc] initWithStyle:UITableViewCellStyleSubtitle

reuseIdentifier:@"cell"];

}



NSURL *url = [NSURL URLWithString:@"http://www.ss.com/my.png"];

NSURLRequest *r = [NSURLRequest requestWithURL:url];

[c.myImageView setImageWithURLRequest:r placeholderImage:[UIImage imageNamed:@"def.png"] success:^(NSURLRequest *request, NSHTTPURLResponse *response, UIImage *image) {

if (c)

{

c. myImageView.image = image;

[c setNeedsLayout];

}

} failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error) {

NSLog(@"Error: %@", error);

}];

最佳答案

在这种情况下使用延迟加载技术。就好像我们必须在 TableView 中显示图像一样,延迟加载是最好的技术。这是图书馆 https://github.com/rs/SDWebImage只需将 SDWebImage 文件夹添加到您的项目中即可。然后在你的类中导入以下内容

#import "UIImageView+WebCache.h"

并在 cellforRowIndex 方法中编写以下代码

 NSURL *url = [NSURL URLWithString:@"http://www.ss.com/my.png"];
[c.myImageView setImageWithURL:url placeholderImage:[UIImage imageNamed:@"def.png"]];

不需要成功失败 block ,因为它会延迟加载图像,并通过将其本身作为 key 将它们保留在缓存中。因此,如果图像已经加载过一次,那么下次当您打开此 Controller 时,它将显示为就像在本地存储中一样。这就是这个库的好处

关于ios - TableView 图像仅在向下滚动时显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28851567/

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