以前にminimumFontSize
を使用しましたが、その関数は非推奨になり、minimumScaleFactor
がどのように機能するかよくわかりません。
最大フォントサイズを10、最小フォントサイズを7にします。
スケールファクターを使用してフォントサイズ7までサイズを変更するにはどうすればよいですか?
UILabel
作成:
UILabel *label = [[UILabel alloc] init];
[label setTranslatesAutoresizingMaskIntoConstraints:NO];
label.text = [labelName uppercaseString];
label.textAlignment = NSTextAlignmentCenter;
label.textColor = [UIColor whiteColor];
label.font = [UIFont fontWithName:HELVETICA_FONT_STYLE_BOLD size:9.5];
label.backgroundColor = [UIColor clearColor];
label.minimumScaleFactor = .1f;
[label addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:[label(WIDTH)]"
options:0
metrics:@{@"WIDTH" : [NSNumber numberWithFloat:buttonSize.width]}
views:NSDictionaryOfVariableBindings(label)]];
[contentView addSubview:label];
label.adjustsFontSizeToFitWidth = YES;
を設定する必要があります
他の答えに加えて、minimumScaleFactor
としてminSize/defaultSize(分割)を指定すると、古いminimumFontSize
を使用した場合と同じになります。
たとえば、デフォルトのラベルサイズを使用して最小フォントサイズを10にするには、次のようにします。
[label setMinimumScaleFactor:10.0/[UIFont labelFontSize]];
(デフォルトではない場合は、[UIFont labelFontSize]
をラベルのフォントサイズに置き換えてください)。
[label setMinimumFontSize:10.0];
と同じになります
ドキュメント によると:
このプロパティを使用して、ラベルのテキストを表示する際に使用できる許容フォントサイズが得られる現在のフォントサイズの最小乗数を指定します。このプロパティに0の値を指定すると、現在のフォントサイズが最小フォントサイズとして使用されます。
したがって、ラベルのデフォルトのフォントサイズが10
の場合、0.7f
をminimumScaleFactor
として指定すると、minimumFontSize
と同じことを行う必要があります。
他の答えに加えて、私は自分自身を助けた初心者向けの説明を追加します。
minimumScaleFactor
の計算方法は?ラベルの最小フォントサイズをラベルのデフォルトフォントサイズで割ります。たとえば、デフォルトのフォントサイズは25です。最小フォントサイズは10です。
10/25 = 0.4
0.4はminimumScaleFactor
の値です。上記の@Jsdodgersの回答も参照してください。