iOS7 est la dépréciation de NSString de drawAtPoint:forWidth:withFont:minFontSize:actualFontSize:lineBreakMode:baselineAdjustment:
Avec iOS7, la fonction suivante a été déprécié:
drawAtPoint:forWidth:withFont:minFontSize:actualFontSize:lineBreakMode:baselineAdjustment:
Dans la documentation d'Apple, il suggère d'utiliser des
drawInRect:withAttributes:
Cette raison que j'utilise cette fonction est à cause de la minFontSize
paramètre, ce qui me permet de dessiner une chaîne à l'intérieur d'un rectangle. Si le texte ne correspondent pas, il va d'abord réduire la taille du texte à minFontSize
et puis si elle ne rentre pas, elle sera tronquée. Je suis incapable de l'accomplir jusqu'à présent, à l'aide de drawInRect:withAttributes:
Quelqu'un peut m'aider dans la détermination de la clé que je peux utiliser pour déterminer le minFontSize
équivalent?
Merci!
-Rob
OriginalL'auteur Rob | 2013-09-20
Vous devez vous connecter pour publier un commentaire.
Il est un peu plus compliqué qu'avant et vous ne pouvez pas utiliser une taille de police minimale, mais avoir à utiliser un minimum de police de facteur d'échelle. Il y a aussi un bug dans le SDK iOS, qui rompt pour la plupart des cas d'utilisation (voir les notes au bas). Voici ce que vous devez faire:
Notes:
Il semble y avoir un bug dans iOS 7 SDK au moins jusqu'à la version 7.0.3: Si vous spécifiez une police personnalisée dans les attributs, les miniumScaleFactor est ignoré. Si vous passer néant pour les attributs, le texte est mis à l'échelle correctement.
La
NSStringDrawingUsesLineFragmentOrigin
option est importante. Il indique le texte de dessin du système, que le dessin rect de l'origine devrait être dans le coin supérieur gauche.Il n'y a aucun moyen de définir le baselineAdjustment à l'aide de la nouvelle méthode. Vous devez le faire vous-même en appelant
boundingRectWithSize:options:attributes:context:
d'abord et puis en ajustant le rect avant de vous passer àdrawWithRect:options:attributes:context
.OriginalL'auteur Florian
Après googler pour un long moment que je n'ai pas trouver une solution de travail sous iOS7. Droit maintenant, j'utilise la solution de contournement suivante, sachant que c'est très laid. J'ai rendu un UILabel dans la mémoire, prendre une capture d'écran et dessiner. UILabel est capable de réduire la taille du texte correctement.
Peut-être quelqu'un le trouve utile.
OriginalL'auteur Shingoo
il suffit de créer un NS dictionnaire avec cette clé, et l'attribut de sorte qu'il serait
yep, désolé, je n'ai pas lu votre question correctement, je ne pouvais pas trouver une clé dans la documentation qui fait exactement ce que minFontSize ferait, mais peut-être jouer avec cette clé, "NSStrokeWidthAttributeName" , j'espère que ça aide
OriginalL'auteur heczaco
J'ai utilisé les méthodes suivantes pour résoudre mon problème.
En utilisant le code ci-dessous, vous pouvez drawAtPoint, définir la police, la police la taille et la couleur de la police à une localisation X , Y.
[String drawAtPoint:CGPointMake(X, Y)
withAttributes:@{NSFontAttributeName:[UIFont fontWithName:@"Helvetica-Bold" taille:18], NSForegroundColorAttributeName:[UIColor colorWithRed:199.0 f/255.0 f vert:0.0 f/255.0 f bleu:54.0 f/255.0 f alpha:1.0 f] }];
OriginalL'auteur Kaleab FHL