Я использовал 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];
ios
objective-c
uilabel
Падин215
источник
источник
В дополнение к тому, что говорят другие ответы, если вы поместите minSize / defaultSize (Division) в качестве значения
minimumScaleFactor
, оно будет таким же, как при использовании старогоminimumFontSize
.Например, если вы хотите, чтобы минимальный размер шрифта был 10 при использовании размера метки по умолчанию, вы можете сделать:
[label setMinimumScaleFactor:10.0/[UIFont labelFontSize]];
(Замените
[UIFont labelFontSize]
размер шрифта вашего ярлыка, если он не установлен по умолчанию).что будет таким же, как:
[label setMinimumFontSize:10.0];
источник
По документации :
Итак, если размер шрифта по умолчанию для вашей метки равен
10
, вы указываете0.7f
как,minimumScaleFactor
и он должен делать то же самое, чтоminimumFontSize
и.источник
В дополнение к другим ответам я собираюсь добавить объяснение для начинающих, которое помогло мне:
Как рассчитать
minimumScaleFactor
? Разделите минимальный размер шрифта ярлыка на размер шрифта ярлыка по умолчанию. Например, ваш размер шрифта по умолчанию - 25. Минимальный размер шрифта - 10.10/25 = 0,4
0,4 - ваше
minimumScaleFactor
значение. Также см. Ответ @ Jsdodgers выше.источник