当UITableViewCell滚动尤其是UIImageView时,Autolayout正在破碎

时间:2018-02-10 03:03:42

标签: ios uitableview autolayout

我需要动态高度的UITableViewCell取决于内容长度。

这是原型单元

Prototype cell

首次加载时内容显示正常

Works fine initially

但是当我滚动UITableView时,单元格的内容会像这样破坏,特别是对于UIImageView。

Breaks

在单元格的实现中,我只使用了setImagesetText方法。

看来问题是什么?或者,是否有另一种方法在viewDidLoad之后以不同方式设置每个单元格的高度?

**编辑:这是我cellForRowAtIndexPath

的实现
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    NotificationCell *cell = [tableView dequeueReusableCellWithIdentifier:@"notification"];
    if(!cell) {
        [tableView registerNib:[UINib nibWithNibName:@"NotificationCell" bundle:nil] forCellReuseIdentifier:@"notification"];
        cell = [tableView dequeueReusableCellWithIdentifier:@"notification"];
    }

    [cell setContent:[notifications objectAtIndex:indexPath.row]];
    [cell layoutIfNeeded];
    return cell;
}

NotificationCell.m中的setContent只有setTextsetImage

1 个答案:

答案 0 :(得分:0)

因为tableView已经有一个imageView属性并且它位于单元格的左侧,所以您将图像设置为该imageView。您应该重命名自定义imageView的插座。因此,它不应该被称为imageView,为它提供另一个名称。