滚动时自定义单元格图像会变形

时间:2014-07-28 11:18:37

标签: ios objective-c uitableview

我有UITableView的自定义单元格;该自定义单元格来自扩展UITableViewCell的类。 我只有一个.xib来创建实际的单元格,以及.h中这些项目的链接。 我没有使用.m,它只是自动生成的awakeFromNibsetSelected:selected:animated

当我使用cellForRow方法创建我的单元格时,一切正常,它在屏幕上显示正确。

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *cellIdentifier = @"CustomCellTableViewCell";
    CustomCellTableViewCell *cell = [self.tbUpcomingEvents dequeueReusableCellWithIdentifier:cellIdentifier forIndexPath:indexPath];
    tmp = [_eventList objectAtIndex:indexPath.row];

    cell.lbDescription.text = tmp.description;
    cell.lbTitle.text = tmp.title;

    cell.imageView.layer.cornerRadius = 20;
    cell.imageView.clipsToBounds = YES;
    cell.layer.masksToBounds = YES;
    cell.imageView.image = [UIImage imageNamed:tmp.type.typeImage];

    cell.lbTimeStart.text = [[[timeFormatter stringFromDate:tmp.startTime] stringByAppendingString:@" - "]stringByAppendingString:[dateFormatter stringFromDate:tmp.startDate]];

    cell.selectionStyle = UITableViewCellSelectionStyleNone;

    return cell;
}

我的问题如下:当我开始滚动桌面视图时,新单元格被搞砸了,特别是图像。它变得更大/更宽,并且(显然)变形。我真的不知道是什么导致它或如何解决它。

单元格与cellForRow方法中的重用标识符和.xib文件中的自定义类相关联。 UITableView没有任何特别之处(除了故事板之外没有其他链接 - > .h,委托,数据源)

有任何线索吗?

3 个答案:

答案 0 :(得分:2)

我发现了我的问题。在这种特殊情况下,我的customCell.h中的imageView被称为" imageView"。这是一个保留命名的,我猜,在创建单元格时(某些?)创建了冲突。

我不知道为什么,但我知道是什么解决了这个问题。现在,我只是为我的图像添加了另一个属性名称,而且我是金色的;)

答案 1 :(得分:0)

尝试替换您的代码:

cell.lbDescription.text = tmp.description;
cell.lbTitle.text = tmp.title;
cell.imageView.image = [UIImage imageNamed:tmp.type.typeImage];
cell.lbTimeStart.text = [[[timeFormatter stringFromDate:tmp.startTime] stringByAppendingString:@" - "]stringByAppendingString:[dateFormatter stringFromDate:tmp.startDate]];

cellForRowAtIndexPathwillDisplayCell方法。

我们的想法是在UITableViewCell中制作tableView:cellForRowAtIndexPath:个模板,但要在tableView:willDisplayCellForRowAtIndexPath:中填充具有特定值的单元格。

答案 2 :(得分:0)

在界面构建器

中取消选中autoresize子视图

enter image description here