为什么我的图像视图在滚动我的tabelview单元格时缩小了?

时间:2016-07-11 11:33:54

标签: ios objective-c uitableview uiimageview

我动态调整我的标签,这是在我的tabelview单元格中。在视图中出现的单元格的数量很好。但是当我滚动时,新单元格具有大尺寸的图像视图。请告诉我。为什么?< / p>

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{   static NSString *CellIdentifier = @"cell";

   TVcell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
   if (cell == nil)
   cell = [[TVcell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
   cell.titleLabel.text = [[[arrayData objectAtIndex:indexPath.row]valueForKey:@"title"]stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
   cell.txtlabel.text = [[[arrayData objectAtIndex:indexPath.row] valueForKey:@"description"]stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
   cell.IMGLabel.contentMode = UIViewContentModeScaleAspectFill;
   [cell.IMGLabel sd_setImageWithURL:[NSURL URLWithString:[enclosureUrlArray objectAtIndex:indexPath.row]]
                      placeholderImage:[UIImage imageNamed:@"placeholder"] options:indexPath.row == 0 ? SDWebImageRefreshCached : 0];
    [cell.IMGLabel.layer setMasksToBounds:YES];
    [cell.IMGLabel.layer setCornerRadius:2.5f];
    [cell setNeedsLayout];
    return cell;
}

2 个答案:

答案 0 :(得分:0)

  1. dequeueReusableCellWithIdentifier:forIndexPath:从不返回nil,所以删除

    if (cell == nil) cell = [[TVcell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];

  2. 请注意,UITableViewCell中的setCornerRadius会使滚动不顺畅。使用Core Graphics更好地使用圆角准备图像。

  3. [cell setNeedsLayout]; - UITableviewCell会自动布局单元格视图,因此它过多。

  4. 如果使用Self Sizing Cell,则应在ViewDidLoad中设置:

    tableView.estimatedRowHeight = 85.0; tableView.rowHeight = UITableViewAutomaticDimension;

答案 1 :(得分:0)

这种情况正在发生,因为您应该在重复使用之前清除单元格中的先前数据。

TVcell课程中,您应该覆盖方法prepareForReuse并将标签和图片视图中的所有数据设置为nil。