当tableview向后滚动时,是否不显示GIF imageview?

时间:2018-10-29 02:50:45

标签: ios tableview cell gif

我发现了一件很奇怪的事情。

1。我在ViewController中保留一个视图。 enter image description here

  1. 将此视图添加到TableView中。

`

-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return 100;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell" forIndexPath:indexPath];

    cell.textLabel.text = [NSString stringWithFormat:@"%ld",indexPath.row];
    if(indexPath.row == 0)
    {
        [cell.contentView addSubview:self.imageContainer];
    }else
    {
        if(self.imageContainer.superview == cell.contentView)
        {
            [self.imageContainer removeFromSuperview];
        }
    }
    return cell;
}

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    if(indexPath.row == 0)
    {
        return 200;
    }
    else
    {
        return 44;
    }
}

当我滚动到底部并滚动回顶部时,gif不会显示。为什么? you can see this picture

1 个答案:

答案 0 :(得分:0)

只需更改以下一行代码即可解决您的问题:

来自

if (nil == _imageContainer)

if (nil == _imageContainer || _imageContainer.superview == nil)

如果只有一个容器,则在数据源方法中,确保突出显示图像以加载图像。希望它能解决您的问题。

  - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
  UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell" forIndexPath:indexPath];

cell.textLabel.text = [NSString stringWithFormat:@"%ld",indexPath.row];
if(indexPath.row == 0)
{

    [cell.contentView addSubview:self.imageContainer];

UIImageView * imageView =(UIImageView *)_imageContainer.subviews [0];         imageView.highlighted =是;

}else
{
    if(self.imageContainer.superview == cell.contentView)
    {

         [self.imageContainer removeFromSuperview];
    }
}
return cell;

}