iOS UITableViewCell自动调整bug

我有一个使用.xib设计的UITableViewCell,它使用单元格自动调整功能.在iOS 9中运行良好,但在iOS 8中,单元格不会自行扩展,内部标签仍然保留1行文本.如果单元格远离屏幕并且返回(即在滚动之后)所有标签都可以.

想法?我认为这是一个iOS 8的bug.

《iOS UITableViewCell自动调整bug》
《iOS UITableViewCell自动调整bug》

最佳答案 我遇到过同样的问题.如果正确设置了约束,则需要在返回单元格之前为单元格中的每个UILabel设置preferredMaxLayoutWidth.这是一些示例代码

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell"];
    cell.lblTitle.text = @"N";
    cell.lblDetails.text = @"bla bla";
    cell.lblOther.text = @"other text";


    // Configure the cell...
    CGfloat leftPading =// "your logo width + spacing between logo and label"
    CGfloat rightPading = //your label trailing space
    cell.lblTitle.preferredMaxLayoutWidth = CGRectGetWidth(tableView.bounds)-(leftPading +rightPading);
    cell.lblDetails.preferredMaxLayoutWidth = CGRectGetWidth(tableView.bounds)-(leftPading +rightPading);
     [cell setNeedsUpdateConstraints];
    [cell updateConstraintsIfNeeded];

    return cell;
    }

Have a look at this to know how to put constrains properly

希望这会对你有所帮助.

点赞