Wie kann ich die Schriftgröße in iOS 7.0 oder höher automatisch anpassen?

9

Ich möchte die Schriftgröße eines Textes erhalten, nachdem er in einem UILabel oder UITextField verkleinert wurde. Dies war vor iOS 7.0 möglich: So erhalten Sie UILabel (UITextView) Automatisch angepasste Schriftgröße? . SizeWithFont wurde jedoch in iOS 7.0 nicht mehr unterstützt. Ich habe versucht, seine Ersetzung, SizeWithAttributes, aber ohne Erfolg zu verwenden. Gibt es eine Möglichkeit, dies in iOS 7.0 zu tun?

    
WaltersGE1 02.02.2015, 18:13
quelle

5 Antworten

9

Hier ist eine Funktion, die ich gemacht habe, um die angepasste Schriftgröße eines UILabel zu bekommen:

Schnell

%Vor%

Ziel-C

%Vor%     
WaltersGE1 02.02.2015 19:39
quelle
8

Ich habe die Antwort von @ WaltersGE1 sehr gemocht, also habe ich es zu einer Erweiterung für UILabel gemacht, um es noch bequemer zu machen:

%Vor%     
dbburgess 14.09.2015 14:21
quelle
2

Überprüfen Sie, nachdem der Text angewendet wurde (vielleicht erzwingen Sie zuerst ein Nachladen der Ansicht) Sie können die Schriftgröße nehmen. Mit einem UITextField könnten Sie beispielsweise die Delegate-Methode für textDidChange implementieren und dann die Schriftgröße aus dem font-Attribut im textField ermitteln. Bei einem Label könnten Sie den Text aktualisieren und dann die Schriftgröße überprüfen.

Beispiel Ich habe ein Projekt erstellt, das ein UILabel von einem UITextField

aktualisiert hat %Vor%

Die tatsächliche Größe scheint richtig zu sein. ( Größenberechnungsquelle )

    
Jbryson 02.02.2015 18:17
quelle
1

Alle bisherigen Lösungen gehen von ganzzahligen Schriftgrößen aus und können die UILabel Eigenschaft von minimumScaleFactor nicht einhalten.

So etwas sollte funktionieren:

%Vor%     
Sterling Christensen 25.03.2016 23:33
quelle
0

Schnell 4

Die obigen Antworten funktionieren gut, verwenden jedoch einige veraltete Werte / Funktionen. Hier ist eine feste Version, die 2018 funktioniert.

%Vor%     
jab 02.04.2018 17:46
quelle

Tags und Links