我想在每个tableView单元格中显示来自URL的缩略图。它工作正常。 但问题是当我滚动导致一些GUI延迟。我知道这是因为每次滚动或每次创建新单元格时都会出现URL请求。 有没有更好的方法来做到这一点,这不会导致任何UI延迟。
我使用以下代码:
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var cell: WelcomeCell = WelcomeCell();
cell = self.tblViewStudent.dequeueReusableCellWithIdentifier("WelcomeCell") as WelcomeCell
if news != nil {
if news.count > 0 {
var objNews = News();
objNews = news.objectAtIndex(indexPath.row) as News;
cell.lblNewsSubject.text = objNews.subject;
cell.lblNewsTime.text = objNews.created_at;
cell.lblNewsSummery.text = objNews.summery;
let url = NSURL(string: objNews.thumbnailURL)
let data = NSData(contentsOfURL: url!)
cell.viewImageThumbnail.image = UIImage(data: data!);
} else {
// do nothing
}
}
return cell;
}
提前致谢。
答案 0 :(得分:0)
在您的课程首次加载时,将缩略图图片保存在Array
或Mutable Array
的网址中,然后将数组中的图片放入cell.viewImageThumbnail.image
答案 1 :(得分:0)
只需使用SDWebImage。
要在表格视图单元格中显示图像,请执行以下操作:
#import <SDWebImage/UIImageView+WebCache.h>
...
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *MyIdentifier = @"MyIdentifier";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:MyIdentifier];
if (cell == nil)
{
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault
reuseIdentifier:MyIdentifier] autorelease];
}
// Here we use the new provided sd_setImageWithURL: method to load the web image
[cell.imageView sd_setImageWithURL:[NSURL URLWithString:@"http://www.domain.com/path/to/image.jpg"]
placeholderImage:[UIImage imageNamed:@"placeholder.png"]];
cell.textLabel.text = @"My Text";
return cell;
}