[ios] 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];



답변

당신은 설정해야 label.adjustsFontSizeToFitWidth = YES;


답변

다른 답변이 말하는 것 외에도 minSize / defaultSize (division)를으로 넣으면 minimumScaleFactor이전을 사용하는 것과 동일합니다 minimumFontSize.

예를 들어 기본 레이블 크기를 사용하여 최소 글꼴 크기를 10으로 설정하려면 다음을 수행 할 수 있습니다.

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

( [UIFont labelFontSize]기본값이 아닌 경우 레이블의 글꼴 크기로 바꿉니다 ).

다음과 같습니다.
[label setMinimumFontSize:10.0];


답변

문서 에 따르면 :

이 속성을 사용하여 레이블의 텍스트를 표시 할 때 사용할 허용 가능한 글꼴 크기를 생성하는 현재 글꼴 크기에 대한 최소 승수를 지정합니다. 이 속성 값을 0으로 지정하면 현재 글꼴 크기가 가장 작은 글꼴 크기로 사용됩니다.

따라서 레이블의 기본 글꼴 크기가 10이면 0.7fa로 입력하면 했던 minimumScaleFactor것과 동일한 작업을 수행해야합니다 minimumFontSize.


답변

다른 답변 외에도 초보자에게 도움이되는 설명을 추가하겠습니다.

계산하는 방법 minimumScaleFactor? 레이블의 최소 글꼴 크기를 레이블의 기본 글꼴 크기로 나눕니다. 예를 들어, 기본 글꼴 크기는 25입니다. 최소 글꼴 크기는 10입니다.

10/25 = 0.4

0.4는 당신의 minimumScaleFactor가치입니다. 위의 @Jsdodgers의 답변도 참조하십시오.


답변