Я тестирую RSS на своем iPhone. Он использует 0 файлов nib. Я постараюсь описать это как можно лучше и отправлю код, если это необходимо, но я ставлю его общим явлением с общим решением. Проблема заключается в контроллере tableview, и решение, вероятно, должно быть реализовано в методе CellForRowAtIndexPath. Если я прокручу вниз, изображения предварительного просмотра остаются в их соответствующих местах, пока асинхронная очередь не загрузит правильное изображение для этой ячейки. Поэтому, если у меня есть изображение для элемента массива 1, и я прокручиваю вниз до элемента массива 20, изображение для элемента массива 1 будет по-прежнему находиться до тех пор, пока моя очередь не поймает и не загрузит это изображение. Как я могу освободить изображения из ячеек, которые я не просматриваю? Спасибо за ваше время.iOS table preview image release
Вот мой 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; @end ============================================================================================================================ ======= 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;
}
Вы можете показать нам свои коды? – Raptor
Спасибо, я добавил свой CellForRow ... – Morkrom