これが非常に単純であることはわかっていますが、プログラムで 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 になります!? 高さとテキスト サイズの値を極端なサイズに変更しても、このコードは調整できない固定サイズのラベルを作成します。小さくすることができる唯一のことは、幅です。
基本的なことを見過ごしているに違いありませんが、目的の結果を得る方法が本当にわかりません。また、取得している動作を取得する理由も理解できません。