我知道这应该很简单,但我一直在努力通过编程方式创建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?即使我将高度和文字大小值更改为极端尺寸,该代码也会创建一个固定大小的标签,无法调整。唯一能缩小的是宽度。
我一定忽略了一些基本的东西,但我真的无法弄清楚如何获得我想要的结果,也不知道为什么会出现这种行为。