在问这个问题之前我看过SO。所有问题都是关于调整 UILabel
的高度而不是其宽度。我尝试了替代方法,但它不起作用,例如 [label sizeToFit];
。是否可以根据标签的文本调整标签的宽度?我在 Storyboard的 UITableViewCell
中创建标签。我希望能够根据分配的文本调整其宽度。我不想调整字体大小。
我在CellForRowAtIndexPath
中设置了标签的文本。
请提供示例。
提前致谢:)
更新 1:我有一个在 Storyboard 中制作的自定义单元格,因此不是以编程方式制作的。我在 CellForRowAtIndexPath
中设置每个单元格的内容,例如 myLabel.text = Recipe.name
。名称标签很小,但我想根据文本的长度扩展其宽度,而不是截断尾部或缩小文本的大小。
更新2:我的单元格中有很多其他 UIElement。所以我在左上角、右上角、左下角、右下角有一个标签,中间有一张图片,默认值为 120,因为它们有背景色。我将其设置得较小,因为标签中没有大量的空白空间。
最佳答案
获取字符串的大小:
//Replace FLT_MAX with the maximum height/width you want the label to be, if no maximum leave as FLT_MAX.
CGSize stringSize = [YOUR_STRING sizeWithFont:YOUR_FONT constrainedToSize:CGSizeMake(FLT_MAX, FLT_MAX) lineBreakMode:NSLineBreakByWordWrapping];
然后调整标签的大小:
[YOUR_LABEL setFrame:CGRectMake(0, 0, stringSize.width, stringSize.height)];
在 iOS 7 中,sizeWithFont 已弃用,请改用 boundingRectWithSize
:
NSDictionary *stringAttributes = [NSDictionary dictionaryWithObject:YOUR_LABELS_FONT
forKey: NSFontAttributeName];
CGSize stringSize = [text boundingRectWithSize:CGSizeMake(FLT_MAX, FLT_MAX)
options:NSStringDrawingTruncatesLastVisibleLine |
NSStringDrawingUsesLineFragmentOrigin
attributes:stringAttributes context:nil].size;
关于ios - 根据内容调整 UILabel 的宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22607494/