J'ai un problème avec les UIFonts personnalisés. J'en charge 6 (police A en caractères réguliers/gras/réguliersItalique/grasItalique, polices B en variantes condensées/condensées).
Cependant, voici ce que cela donne lors du rendu:
Les deux premières lignes sont OK, mais la dernière présente un problème de base.
J'ai essayé de changer les polices UPM, ascender, descender, x-height de la police dans FontLab afin qu'elle corresponde aux valeurs de la première police (qui affichent un rendu correct), mais en vain. J'ai essayé de convertir le format de police de OTF en TTF, sans succès. Quoi que j'essaye, ça rend toujours comme ça.
Est-ce que quelqu'un a de l'expérience avec ça?
Ici ou même ici vous pouvez trouver les solutions pour vous. Tout est une question de base.
Remarque Il y a un problème avec l'installation de l'utilitaire Apple Fonts sur El Capitan. Voir https://Apple.stackexchange.com/questions/211138/Apple-font-tools-cannot-install-in-macbook-pro-el-capitan pour une solution de contournement.
Pour les éditer dans la police, vous devez télécharger la suite d'outils Apple Font . Une fois que vous avez installé cela, vous devez ouvrir Terminal et Naviguer dans le répertoire qui contient votre police. Après cela, entrez La commande suivante:
ftxdumperfuser -t hhea -A d font.ttf Ceci créera un fichier appelé font.hhea.xml, ouvrira ce nouveau fichier dans un éditeur de texte et ajustera les valeurs pour ascender et descender. En règle générale, si votre police est trop basse, vous voulez diminuer le facteur de montée et augmenter le descendant. Après Édition et enregistrement, entrez la commande suivante dans le terminal pour Reconstruire votre fichier de police:
ftxdumperfuser -t hhea -A f font.ttf Vous pouvez maintenant utiliser le fichier font.ttf dans votre application. Si la police n’est toujours pas correcte, répétez la procédure ci-dessus jusqu'à ce que vous soyez satisfait.
OU vous pouvez facilement modifier NSBaselineAttributeName comme suit:
NSAttributedString *attrStr = [[NSAttributedString alloc] initWithString:@"a string"
attributes:@{ NSBaselineOffsetAttributeName : @-13 }];
Bonjour, j’ai également fait face à ce problème à ce moment-là j’ai défini Titre du contenu Edge en conséquence pour UIButton .
Donc, si vous utilisez ces polices pour UIButton alors vous pouvez sûrement vous en servir.
Espérons que cela va vous aider.
Une autre solution intéressante que j'ai trouvée provient de l'article suivant: http://www.andyyardley.com/2012/04/24/custom-ios-fonts-and-how-to-fix-the- problème de position verticale/
Donc, vous devriez vérifier si c'est le cas avec votre police, comme il le dit dans l'un des commentaires:
Ma solution corrige effectivement la police personnalisée pour fonctionner avec le moteur de rendu iOS, ce qui vous permet de la remplacer directement par les polices standard sans aucune modification.
Et comment fait-il?
En gros, il suggère de modifier les métriques de la police à l'aide d'un outil Apple externe (voir Référence des métriques de police à l'adresse suivante: https://developer.Apple.com/library/ios/documentation/StringsTextFonts/Conceptual/TextAndWebiPhoneOS/CustomTextProcessing/CustomTextProcessing.html# // Apple_ref/doc/uid/TP40009542-CH4-SW66 )
Pour les éditer dans la police, vous devez télécharger Apple Font Tool Suite. Une fois installé, vous devez ouvrir Terminal et accéder au répertoire contenant votre police. Après cela, entrez la commande suivante:
ftxdumperfuser -t hhea -A d font.ttf
Cela créera un fichier appelé font.hhea.xml, ouvrira ce nouveau fichier dans un éditeur de texte et ajustera les valeurs d'ascendeur et de descendant. En règle générale, si votre police est trop basse, vous voulez diminuer le nombre de caractères de montage et augmenter le nombre de descendeurs. Après avoir édité et enregistré, entrez la commande suivante dans le terminal pour reconstruire votre fichier de police:
ftxdumperfuser -t hhea -A f font.ttf
Vous pouvez maintenant utiliser le fichier font.ttf dans votre application. Si la police n’est toujours pas correcte, répétez la procédure ci-dessus jusqu'à ce que vous soyez satisfait.
À propos, Apple Font Tool Suite n'est pas le seul programme qui puisse vous aider. Donc, si vous ne souhaitez pas installer de copie virtuelle de macO, vous pouvez utiliser FontForge pour Windows pour jouer avec ascender et descender: element -> informations de police, puis onglet OS/2 et métriques. Et n'oubliez pas de cocher la case "Apple" lors de la génération de la police à la fin. Bonne chance!
peut-être jeter un coup d'œil à la propriété de UITextView/UITextLabel 'thLabel.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;'
cela définit l'alignement vertical. Cela m'a été utile il y a quelques jours dans un cas similaire
Vous devez vérifier ces polices côte à côte dans certains logiciels vectoriels tels que Adobe Illustrator ou CorelDraw. Si vous trouvez que les polices sont restituées de la même manière de manière décalée dans ces logiciels également, alors cela a un rapport avec la police elle-même. c'est-à-dire que les polices peuvent être créées avec de tels pixels décalés dans le fichier de polices. Par conséquent, nul besoin de faire de telles modifications dans les paramètres .xib pour UIButton ou UITextField, etc.
Partagez vos fichiers de police ici si possible.