UITableViewCell: загрузка youtube video in UIWebView. Preview duplicated.

Рейтинг: 1Ответов: 1Опубликовано: 20.11.2014

Я добавляю UIWebView в cell таблицы, а затем видео YouTube в HTML. Preview неправильно отображаются после прокрутки вниз и вверх по таблице. Preview повторяются и перемешаны между клеток. Хотя при переходе на содержимое все правильно.

Cell *mediaCell  = [tableView dequeueReusableCellWithIdentifier:@"mediaCell"];
if (mediaCell == nil) {
    mediaCell = [Cell new];
}
Youtube *youtube = [array objectAtIndex:indexPath.row];

NSString * storyLink = youtube.url;

NSString *embedHTML = @"\
<html><head>\
<style type=\"text/css\">\
body {\
background-color: transparent;\
color: white;\
}\
</style>\
</head><body style=\"margin:0\">\
<embed id=\"yt\" src=\"%@\" type=\"application/x-shockwave-flash\" \
width=\"%0.0f\" height=\"%0.0f\"></embed>\
</body></html>";

NSString *html = [NSString stringWithFormat:embedHTML, storyLink, mediaCell.frame.size.width, mediaCell.frame.size.height-40];
CGRect frame;

......

[videoView setFrame:frame];
[videoView loadHTMLString:html baseURL:nil];
videoView.tag=100+indexPath.row;
[mediaCell.thumbnailsPreview addSubview:videoView];

  return mediaCell;

Ответы

▲ 1Принят

Поизучайте, как работает UITableView и прилежащие к этому классы. Нельзя просто так взять и прописать [mediaCell.thumbnailsPreview addSubview:videoView];. Это получается, что чем больше вы скролите таблицу, тем больше поверх одной и той же, а она у Вас одна и та же, куча объектов videoView, они не путаются, они накладываются с верху все больше и больше с каждым скролом.