Я пытаюсь создать UITableView. Однако моя ошибка таблицы, когда она прокручивается (когда ячейка скрывается, а затем снова показывает себя), она сбрасывает вкладки и снова загружает изображения с сервера. Как я могу сделать это не загружать изображения или сохранить предыдущую ячейкуUITableViewCell перезагружается после прокрутки
static NSString *myIdentifier = @"myIdentifier";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:myIdentifier];
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:myIdentifier];
backImage = [[UIImageView alloc] initWithFrame:CGRectMake(2, 4, 300, 62)];
userDp = [[UIImageView alloc] initWithFrame:CGRectMake(11, 10, 50, 50)];
name = [[UILabel alloc] initWithFrame:CGRectMake(67, 12, 176, 20)];
name.font = [UIFont fontWithName:@"HelveticaLTStd-Bold" size:12];
CustomActivityViewer *imgIndicator = [[CustomActivityViewer alloc] initWithView:userDp];
[imgIndicator startAnimating];
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0),^{
UIImage *img = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:[NSString stringWithFormat:@"%@/%@", IMAGE_URL, player.imagePath]]]];
dispatch_async(dispatch_get_main_queue(), ^{
[imgIndicator stopAnimating];
if (img != nil)
userDp.image = img;
[imgIndicator stopAnimating];
});
});
[name setShadowColor:[UIColor blackColor]];
[name setShadowOffset:CGSizeMake(1, 1)];
name.textColor = [UIColor colorWithRed:1.0 green:0.824 blue:0 alpha:1.0];
cell.accessoryType = UITableViewCellAccessoryNone;
[cell setSelectionStyle:UITableViewCellEditingStyleNone];
cell.backgroundColor = [UIColor clearColor];
[cell.contentView addSubview:backImage];
[cell.contentView addSubview:userDp];
[cell.contentView addSubview:name];
return cell;
}
если я место, если (ячейка! = Ноль), то клетки повторилась.
Что делать?
P.S В одном из собственных учебников iPhone я увидел что-то вроде cell.contentView, устанавливая элементы с тегами, а затем называя представления с тегами, если ячейка не равна нулю. Мне не удалось найти этот учебник. Просто сообщите, если кто-нибудь знает
http://developer.apple.com/library/ios/#documentation/uikit/reference/UITableView_Class/Reference/Reference.html в 'dequeueReusableCellWithIdentifier' причина, по которой он получает изображение с сервера снова, потому что он повторно использует ячейки в представлении таблицы, когда они исчезают, поэтому, когда они возвращаются, они снова загружаются, поэтому, когда вы запускаете свой код для ячейки, которая уже появилась, вы выполняете 'UIImage * img = [UIImage imageWithData: [NSData dataWithContentsOfURL: [NSURL URLWithString: [NSString stringWithFormat: @ "% @ /% @", IMAGE_URL, player.imagePath]]]] ', чтобы снова получить изображение. – Popeye