Używałem minimumFontSize
wcześniej, ale ta funkcja jest teraz przestarzała i nie bardzo rozumiem, jak minimumScaleFactor
działa.
Chcę, aby maksymalny rozmiar czcionki wynosił 10, a minimalny 7.
Jak mogę zmniejszyć rozmiar czcionki do rozmiaru 7 za pomocą współczynnika skali?
UILabel
kreacja:
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
Padin215
źródło
źródło
Oprócz tego, co mówią inne odpowiedzi, jeśli jako minSize / defaultSize (dzielenie) wpiszesz
minimumScaleFactor
, będzie to to samo, co użycie staregominimumFontSize
.Na przykład, jeśli chcesz, aby minimalny rozmiar czcionki to 10 przy domyślnym rozmiarze etykiety, możesz wykonać:
[label setMinimumScaleFactor:10.0/[UIFont labelFontSize]];
(Zastąp
[UIFont labelFontSize]
rozmiarem czcionki etykiety, jeśli nie jest to domyślny).który byłby taki sam jak:
[label setMinimumFontSize:10.0];
źródło
Zgodnie z dokumentacją :
Więc jeśli domyślny rozmiar czcionki dla twojej etykiety to
10
, wstawiasz0.7f
jako aminimumScaleFactor
i powinno zrobić to samo, cominimumFontSize
zrobiłeś.źródło
Oprócz innych odpowiedzi dodam przyjazne dla początkujących wyjaśnienie, które pomogło sobie:
Jak obliczyć
minimumScaleFactor
? Podziel minimalny rozmiar czcionki na etykiecie przez domyślny rozmiar czcionki na etykiecie. Na przykład domyślny rozmiar czcionki to 25. Minimalny rozmiar czcionki to 10.10/25 = 0,4
0,4 to twoja
minimumScaleFactor
wartość. Zobacz także odpowiedź @ Jsdodgers powyżej.źródło