【发布时间】:2013-07-22 16:42:05
【问题描述】:
我知道这应该很简单,但我一直在努力以编程方式创建 UILabel 并让它按照我想要的方式运行。
我想要的只是能够创建一个标签,将最大属性设置为高度、宽度和字体大小,然后让文本变小和/或截断文本以容纳长文本字符串。
假设我希望我的标签包含最大宽度为 380、最大高度为 20、最大字体大小为 12 的文本。
这就是我试图创建这样一个标签的方法:
UILabel *fromLabel = [[UILabel alloc]initWithFrame:CGRectMake(91, 15, 0, 0)];
fromLabel.text = [self fromSender];
fromLabel.font = [UIFont fontWithName:ProximaNovaSemibold size:12]; //custom font
fromLabel.numberOfLines = 1;
fromLabel.baselineAdjustment = YES;
fromLabel.adjustsFontSizeToFitWidth = YES;
fromLabel.adjustsLetterSpacingToFitWidth = YES;
fromLabel.size = [fromLabel.text sizeWithFont:fromLabel.font constrainedToSize:CGSizeMake(380, 20) lineBreakMode:NSLineBreakByTruncatingTail];
fromLabel.minimumScaleFactor = MIN_SCALE_FACTOR;
fromLabel.clipsToBounds = YES;
fromLabel.backgroundColor = [UIColor clearColor];
fromLabel.textColor = [UIColor blackColor];
fromLabel.textAlignment = NSTextAlignmentLeft;
[collapsedViewContainer addSubview:fromLabel];
好的,标签出现了,但是文本大于 12 并且高度总是 21!?即使我将高度和文本大小值更改为极端大小,此代码也会创建一个无法调整的固定大小的标签。我唯一能做的似乎是宽度变小了。
我一定是在看一些基本的东西,但我真的不知道如何得到我想要的结果,也不明白为什么我会得到我正在得到的行为。
【问题讨论】:
-
您希望的最小字体大小是多少?
-
最小字体大小为 10,并且 MIN_SCALE_FACTOR = 10/12
-
大小不是只读属性吗?您可能想在这里使用框架。
标签: ios objective-c uilabel