UITableViewCell和Autolayout问题

时间:2013-12-10 09:53:45

标签: ios objective-c uitableview

我正在尝试创建一个包含4 UILabelsUITextView的自定义单元格。我已经列出了这些元素。 UITextView不可滚动。我面临的问题是将UILabel放在UITextView下面。我已经尝试将两者(或者)固定到superview上,似乎没有任何效果。无论如下所示,它总是在UITextView之下:

Screenshot

我还应该怎样做才能将UILabel移到UITextView下面?

这是我在代码中所做的唯一更改:

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    QXTInboxCell *inboxCell = (QXTInboxCell*)[self tableView:tableView cellForRowAtIndexPath:indexPath];
    CGFloat width = self.tableView.frame.size.width - inboxCell.question.frame.origin.x - QUESTION_RIGHT_MARGIN;
    CGSize size = [inboxCell.question sizeThatFits:CGSizeMake(width, 400)];

    [inboxCell.question sizeThatFits:size];
    return (inboxCell.question.frame.origin.y + size.height + 20);
}

请帮忙。我在XCode 5.0.2上。感谢。

1 个答案:

答案 0 :(得分:2)

添加以下约束:

  • TextView到superview(顶部空间)
  • TextView标签(底部/顶部空间)
  • 标签到superview(底部空间)

然后(在设置textView的文本之后)调用

[cell setNeedsLayout]

当然,只有在heightForRowAtIndexPath:计算单元格的正确高度时才有效。