在iOS 7中更改tableview中的标签高度

在iOS 7中更改tableview中的标签高度,ios,uitableview,ios7,label,cgsize,Ios,Uitableview,Ios7,Label,Cgsize,我在表视图的自定义单元格中有一个标签。 在用户录制单元格后,我想更改单元格高度和标签高度(起初我只显示2行,我想显示更多文本) 我可以根据单元格内容更改单元格高度,但不幸的是,我无法更改标签高度:(( 我读了很多答案,但还是一无所获 据信,这将起作用: CGSize labelSize = [@"Hello World!" sizeWithFont:[UIFont systemFontOfSize:17] constrainedToSize:CGSizeMake(label.frame.size

我在表视图的自定义单元格中有一个标签。 在用户录制单元格后,我想更改单元格高度和标签高度(起初我只显示2行,我想显示更多文本)

我可以根据单元格内容更改单元格高度,但不幸的是,我无法更改标签高度:(( 我读了很多答案,但还是一无所获

据信,这将起作用:

CGSize labelSize = [@"Hello World!" sizeWithFont:[UIFont systemFontOfSize:17] constrainedToSize:CGSizeMake(label.frame.size.width,MAXFLOAT) lineBreakMode:NSLineBreakByWordWrapping];

但这在iOS 7中已被弃用;有人能帮我调整单元格中标签的大小吗?

UITableViewCell
-layoutSubviews
中布局它的内容。因此,如果您只想拥有自定义布局逻辑,您需要对
UITableViewCell
进行子类化,并覆盖
-layoutSubviews
方法不过,在应用逻辑之前,最好先调用
super

如果您想要标签相对于单元格高度的高度,并使用情节提要,则应使用与单元格内容视图相关的约束来确定标签的大小。只需将标签的顶部和底部距离设置为ContentView,标签没有额外的高度


如果您不知道如何设置故事板和约束,这可能会有所帮助:

您可以使用类似的方法来获得UIlabel大小

-(CGFloat)getLabelSize:(UILabel *)label fontSize:(NSInteger)fontSize
{


    NSDictionary *attributesDictionary = [NSDictionary dictionaryWithObjectsAndKeys:
                                      [UIFont systemFontOfSize:fontSize], NSFontAttributeName,
                                      nil];

    CGRect frame = [label.text boundingRectWithSize:CGSizeMake(270, 2000.0)
                                        options:NSStringDrawingUsesLineFragmentOrigin
                                     attributes:attributesDictionary
                                        context:nil];

    CGSize size = frame.size;

    return size.height;
}

谢谢!真的很有帮助!我使用了自动布局和约束!