我在表格视图中的自定义单元格中有一个标签。 我想在用户录制单元格后更改单元格高度和标签高度(起初我只显示2行,我想显示更多文本),
我可以根据细胞含量更改细胞高度,但遗憾的是我无法更改标签高度,:(( 我已经阅读了大量的stackoverflow答案,但仍然没有。
据信这可行:
CGSize labelSize = [@"Hello World!" sizeWithFont:[UIFont systemFontOfSize:17] constrainedToSize:CGSizeMake(label.frame.size.width,MAXFLOAT) lineBreakMode:NSLineBreakByWordWrapping];
但在iOS 7中已弃用;任何人都可以帮助我在单元格中调整我的标签大小吗?
答案 0 :(得分:1)
如果您希望标签的高度相对于单元格的高度而使用Storyboard,则应使用与单元格的ContentView相关的约束来确定标签的大小。只需设置从标签到ContentView的顶部和底部距离,并且标签没有额外的高度。
如果你不知道如何设置故事板和约束,这可能会有所帮助:https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/AutolayoutPG/AutoLayoutbyExample/AutoLayoutbyExample.html
答案 1 :(得分:0)
UITableViewCell
在-layoutSubviews
中列出了它的内容。因此,如果您只想拥有自定义布局逻辑,则需要继承UITableViewCell
并覆盖-layoutSubviews
方法。不过,最好在应用逻辑之前调用super
。
答案 2 :(得分: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;
}