web-dev-qa-db-ja.com

UILabelのminimumScaleFactorはどのように機能しますか?

以前に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];
103
Padin215

label.adjustsFontSizeToFitWidth = YES;を設定する必要があります

194
Scott

他の答えに加えて、minimumScaleFactorとしてminSize/defaultSize(分割)を指定すると、古いminimumFontSizeを使用した場合と同じになります。

たとえば、デフォルトのラベルサイズを使用して最小フォントサイズを10にするには、次のようにします。

[label setMinimumScaleFactor:10.0/[UIFont labelFontSize]];

(デフォルトではない場合は、[UIFont labelFontSize]をラベルのフォントサイズに置き換えてください)。

[label setMinimumFontSize:10.0];と同じになります

103
Jsdodgers

ドキュメント によると:

このプロパティを使用して、ラベルのテキストを表示する際に使用できる許容フォントサイズが得られる現在のフォントサイズの最小乗数を指定します。このプロパティに0の値を指定すると、現在のフォントサイズが最小フォントサイズとして使用されます。

したがって、ラベルのデフォルトのフォントサイズが10の場合、0.7fminimumScaleFactorとして指定すると、minimumFontSizeと同じことを行う必要があります。

20
kovpas

他の答えに加えて、私は自分自身を助けた初心者向けの説明を追加します。

minimumScaleFactorの計算方法は?ラベルの最小フォントサイズをラベルのデフォルトフォントサイズで割ります。たとえば、デフォルトのフォントサイズは25です。最小フォントサイズは10です。

10/25 = 0.4

0.4はminimumScaleFactorの値です。上記の@Jsdodgersの回答も参照してください。

10
AVog