0

我在 Xcode 界面生成器中制作了一个自定义的 TableViewCell,一个 UILabel 和一个 UITextView 垂直堆叠,并设置了它们与容器单元格视图之间的垂直间距约束。

在此处输入图像描述

UITextView 可能需要保存很多文本,我不希望出现垂直滚动条,所以我用 [NSString sizeWithFont:constraintTosize:] 计算 UITextView 的高度,并将其框架设置为这个新高度。

但它不起作用。

然后我注意到 .xib 中的自定义单元格具有固定的行高。我想知道这个固定高度和垂直约束是否决定了 UITextView 的高度,而我不能改变它?

如果我想反过来怎么办:当我设置 UITextView 的高度时,包含单元格的高度是根据约束计算的?这可能吗?

4

1 回答 1

1

以下代码应该会有所帮助。我能够做你所描述的事情,并UILabel在一个UITableViewCell名为CustomCell. CustomCell使用没有修改的样板UITableViewCell代码。

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";
    CustomCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    // Configure the cell...
    // Using some sample text in here for testing purposes.
    NSString *sampleText = @"The UITextView may need to hold a lot of text, I don't want vertical scrollbar to appear. The UITextView may need to hold a lot of text, I don't want vertical scrollbar to appear.";

    cell.textLabel.text = sampleText;
    [cell.textLabel layoutIfNeeded];

    return cell.textLabel.frame.size.height;
}

最后但同样重要的是,使用 AutoLayout设置您的UILabel内部。CustomCell按照此链接查看有关如何执行此操作的步骤:https ://stackoverflow.com/a/16009707/885189

于 2013-12-31T00:12:29.290 回答