我动态调整我的标签,这是在我的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;
}
答案 0 :(得分:0)
dequeueReusableCellWithIdentifier:forIndexPath:从不返回nil,所以删除
if (cell == nil)
cell = [[TVcell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
请注意,UITableViewCell中的setCornerRadius会使滚动不顺畅。使用Core Graphics更好地使用圆角准备图像。
[cell setNeedsLayout];
- UITableviewCell会自动布局单元格视图,因此它过多。
如果使用Self Sizing Cell,则应在ViewDidLoad中设置:
tableView.estimatedRowHeight = 85.0;
tableView.rowHeight = UITableViewAutomaticDimension;
答案 1 :(得分:0)
这种情况正在发生,因为您应该在重复使用之前清除单元格中的先前数据。
在TVcell
课程中,您应该覆盖方法prepareForReuse
并将标签和图片视图中的所有数据设置为nil。