Taille de police minimale obsolète sur iOS version 6.0


92

Je viens de passer à xcode 4.5 avec iOS 6.0 et il met en évidence un avertissement sur tous les UILabels dans mes fichiers XIB disant "taille de police minimale obsolète sur iOS version 6.0". Est-ce que quelqu'un sait de quoi il s'agit et comment y remédier?

Mise à jour: l' image n'est plus disponible (était à https://skitch.com/hahmadi82/eyk51/cloud )


1
@HoomanAhmadi: tous les développeurs iOS ont reçu cet e-mail. Lisez l'avertissement au bas de celui-ci: "Pre-release software ..."
Rok Jarc

7
Remplacez «Taille de police minimale» dans la section Réduction automatique par «Échelle de police minimale». : p J'ai juste eu le même problème et est venu directement ici en supposant que les polices ne violeraient pas la NDA. On dirait que les polices ont subi quelques modifications lors de la mise à niveau.
erran le

18
J'ai soulevé cette question car elle n'était pas correctement fermée. Au moins la raison de la fermeture est fausse, fausse, fausse. "il n'est pertinent que pour une petite zone géographique" non. Cela s'applique à tous les développeurs iOS. "situation extraordinairement étroite qui n'est généralement pas applicable à l'audience mondiale d'Internet" non. Cela s'applique à tout le monde. "Il est peu probable que cette question aide les futurs visiteurs" non. Cela m'a été incroyablement utile et susceptible d'être également utile à tous les développeurs iOS. Je comprends le problème de la NDA, mais dès que la NDA est levée, cette question se posera.
Jean-Denis Muys

9
Mes amis, la première fois que j'ai réparé cela, je l'ai fait manuellement et c'était une sorte de torture spéciale. Ensuite, j'ai dû fusionner quelques modifications et grâce à la version bêta de Xcode, cela m'a donné emacs comme outil de fusion.J'ai donc renoncé à cela et pris la version la plus récente du fichier en sachant que je les jetterais, mais j'ai refait ces modifications en utilisant TextWrangler: les fichiers sont au format xml. Remplacez simplement: autoshrinkMode = "minimumFontSize" par autoshrinkMode = "minimumFontScale" et remplacez minimumFontSize = "10" par minimumFontScale = "0.5". Voila.
Rob

1
@LittleBobbyTables: Ce serait bien si les gens pouvaient demander gentiment , cependant. Des gémissements fâchés et intitulés comme le commentaire de matheszabi sont un excellent moyen de me convaincre de ne pas rouvrir une question.
CA McCann

Réponses:


47

minimumFontSizeLa propriété de UILabelest obsolète à partir d'iOS 6.0.

Une alternative à l' minimumFontSizeest minimumScaleFactor. Si vous attribuez minimumFontSize/defaultFontSizeà minimumScaleFactor, cela fonctionne de la même manière que minimumFontSize.

Le code est le suivant - Par exemple, la taille de la police est 30,0 et si vous voulez que la taille de police minimale soit 12,0

YOURLABEL.font= [UIFont fontWithName:@"FONT_NAME" size:30.0];
[YOURLABEL setMinimumScaleFactor:12.0/[UIFont labelFontSize]];


8

Solution rapide ... Ici, la taille de police minimale est de 8,0

            CGFloat size = textLabel.font.pointSize;// font size of label text
            [textLabel setMinimumScaleFactor:8.0/size];

5

Je réponds très tard, mais pourrais aider n'importe qui. Comme tout le monde sait que cela setMinimumFontSizea été déconseillé, une autre méthode de remplacement setMinimumFontSizeest celle setAdjustFontToFitWidthqui prend BOOL par exemple

[yourLabel setAdjustsFontSizeToFitWidth:YES];
//or
yourLabel.adjustsFontSizeToFitWidth = YES;

3

J'ai eu un problème similaire. La solution rapide consiste à utiliser la propriété MinimumScaleFactor de UILabel.


3

Pour Swift, utilisez les éléments suivants:

//set the number (ex. 8 to your desired minimum font size)
myLabel!.minimumScaleFactor = 8/myLabel!.font.pointSize;`

Fonctionne comme un charme!


1

Allez dans le Finder et trouvez le .storyboardfichier ou le vôtre .xibet ouvrez avec TextEdit. Utilisez find pour localiser la chaîne "autoshrinkMode"et remplacez la valeur "minimumFontSize"par"minimumFontScale"

Bizarre que la conversion n'ait pas été écrite dans les scripts de mise à jour ...

Merci également à @Rob dans les commentaires ci-dessus pour avoir déclaré la même réponse. Il devrait recevoir le crédit pour celui-ci.


il n'y a pas de autoshrinkMode dans mon fichier de storyboard.
Timuçin

Merci, cela fonctionne parfaitement pour moi. @Tim il vous suffit de sélectionner le UILabel, et de cocher l'option "label" dans le panneau utilitaire de droite, et de cocher les options, vous en verrez une appelée "Autoshrink". i.stack.imgur.com/H6YYJ.png
pabloverd

0

Vous pouvez utiliser le facteur d'échelle minimum là-bas ou faire glisser une étiquette et définir la police autoshrik-> minimum.

Peut-être que cela peut vous aider.


0

Oui minumumFontSizeest obsolète.

Utiliser suivant minimumScaleFactor:-

Obj.minimumScaleFactor= (floatValue);
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.