我在iPhone上测试RSS。它使用0个nib文件。我会尝试尽可能地描述它,如果需要,我会发布代码,但我敢打赌它是一个常见的解决方案。问题出在tableviewcontroller中,解决方案可能需要在CellForRowAtIndexPath方法中实现。如果我向下滚动,预览图像将保留在各自的位置,直到异步队列加载该单元格的正确图像。因此,如果我有一个数组项1的图像,并向下滚动到数组项20,数组项1的图像仍将存在,直到我的队列赶上并加载该图像。如何从我未查看的单元格中释放图像?感谢您的时间。
这是我的CellForRow ......
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
CustomCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[CustomCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier];
}
ArticleItem *object = _objects[indexPath.row];
cell.primaryLabel.text = object.title;
cell.secondaryLabel.text = object.strippedDescription;
cell.primaryLabel.lineBreakMode = NSLineBreakByWordWrapping;
cell.primaryLabel.numberOfLines = 0;
cell.primaryLabel.lineBreakMode = NSLineBreakByWordWrapping;
cell.secondaryLabel.numberOfLines = 0;
//Async dispatch queue for image preview loading...
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0ul);
dispatch_async(queue, ^{
UIImage *preview = nil;
if (object.iG = nil)
{
preview = [UIImage imageNamed:@"CellLogo.png"];
}
else
{
preview = [UIImage imageWithData:object.iG];
}
dispatch_sync(dispatch_get_main_queue(), ^{
[[cell myImageView] setImage:preview];
[cell setNeedsLayout];
});
});
return cell;
}
如果你收集,我有一个ArticleItem类,它拉动图像URLS并将它们变成数据,我有一个CustomCell类,它执行它所调用的。 CustomCell.h @interface CustomCell:UITableViewCell { UIImageView * myImageView; } @property(非原子,强)UIImageView * myImageView; @结束 ================================================== === CustomCell.m
- (id)initWithFrame:(CGRect)frame reuseIdentifier:(NSString *)reuseIdentifier {
if (self = [super initWithFrame:frame reuseIdentifier:reuseIdentifier]) {
// Initialization code
myImageView = [[UIImageView alloc]init];
[self.contentView addSubview:myImageView];
}
return self;
}
-(void)viewDidUnload {
myImageView = nil;
primaryLabel = nil;
secondaryLabel = nil;
}
答案 0 :(得分:1)
实现UITableViewcell的子类,为imageview创建一个属性。一旦它远离可见性,它就会被释放。您只需要描述概述,就可以在滚动时查看使用情况。