2014-01-24 44 views
0

我在表格视图中的自定义单元格中有一个标签。 我想改变单元格高度和标签高度(起初我只显示2行,我想显示更多文本)用户录制单元格后,我能够根据单元格内容更改单元格高度,但不幸的是我无法改变的标签高度:(( 我读过吨计算器的答案,但仍没有在iOS 7中更改tableview中的标签高度

人们认为这会工作:

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

但是这是iOS中弃用7;任何人都可以帮我调整我的标签在单元格中的尺寸吗?

回答

1

如果您希望标签的高度相对于您的单元格的高度,并且您使用了故事板,则应该通过与单元格的ContentView相关的约束来确定标签的大小。只需设置标签到ContentView的顶部和底部距离,并且标签没有额外的高度。

如果你不知道如何设置故事板和约束,这可能帮助:https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/AutolayoutPG/AutoLayoutbyExample/AutoLayoutbyExample.html

+0

谢谢!它真的帮助!我使用AutoLayout并使用约束! –

0

UITableViewCell列出它的内容-layoutSubviews。因此,如果您只想要自定义布局逻辑,则需要继承UITableViewCell并覆盖-layoutSubviews方法。不过,在应用逻辑之前,最好先致电super

0

你可以使用像这样得到的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; 
} 
相关问题