【发布时间】:2011-08-30 11:44:50
【问题描述】:
我有一个UILabel,他的文字大小有属性
title.adjustsFontSizeToFitWidth = YES;
这使我无法使用标准方法来调整 UILabel 的大小。我在这里的另一篇文章中读到我应该使用该功能
sizeWithFont:minFontSize:actualFontSize:forWidth:lineBreakMode
来自这个答案:How to figure out the font size of a UILabel when -adjustsFontSizeToFitWidth is set to YES?
现在,我不知道如何使它工作.. 这是实际的代码
UIFont *font = [UIFont fontWithName:@"Marker Felt" size:200];
UILabel *title = [[UILabel alloc] initWithFrame:CGRectMake(0.0, 0.0, width, 20.0)];
title.text = @"this is a long title that should be resized";
title.font = font;
title.numberOfLines = 1;
title.adjustsFontSizeToFitWidth = YES;
CGFloat pointSize = 0.0;
CGSize size = [title.text sizeWithFont:font
minFontSize:title.minimumFontSize
actualFontSize:&pointSize
forWidth:width
lineBreakMode:title.lineBreakMode];
title.frame = CGRectMake(title.frame.origin.x,
title.frame.origin.y,
size.width,
size.height);
UILabel 被错误地调整大小,好像字体大小仍然是 200.. 有什么线索吗?谢谢!
【问题讨论】:
-
什么是title.minimumFontSize? width 变量中有什么值?
-
目前没有设置 minimumFontSize,width 就是我想要这个文本在的 UIView 的宽度(假设是 200.0)
-
尝试将其设置为 10,例如 =) 如果您有固定宽度,那么您想从尺寸中得到什么?身高?
-
是的,我正在尝试获取高度.. 基本上重点是模拟 uilabel 不支持的垂直顶部文本对齐
-
您是否尝试将 title.minimumFontSize 设置为低于 200 的值?