Peut UILabel de drawTextInRect méthode d'être remplacée pour modifier la taille de UILabel du texte?
La documentation d'Apple pour drawTextInRect semble indiquer que c'est possible:
"Par le temps, cette méthode est appelée, l'actuel contexte graphique est déjà configuré avec la valeur par défaut de l'environnement et la couleur du texte pour le dessin. Dans votre méthode de remplacement, vous pouvez configurer le contexte actuel, puis invoquer super pour faire le dessin ou vous pouvez dessiner vous-même. Si vous n'rendre le texte vous-même, vous ne devriez pas appeler super."
Mais l'exemple ci-dessous de mon UILabel sous-classe (que j'ai confirmé est appelé) n'est pas une cause de la taille du texte pour le changement, peu importe ce que la taille du texte je précise. Suis-je en attrapant la droite contexte ou manque peut-être quelque chose de plus grand?
- (void)drawTextInRect:(CGRect)rect{
CGContextRef theContext = UIGraphicsGetCurrentContext();
CGContextSetFontSize(theContext, 32.0); //<-- doesn't change text size
[super drawTextInRect:rect];
}
Remarque - la taille du texte n'est pas la seule chose que j'ai besoin de changer le texte, mais si je pouvais obtenir la taille du texte pour changer les choses, je suis sûr que le reste des changements que j'ai besoin de faire serait facile.
OriginalL'auteur Monte Hurd | 2009-07-10
Vous devez vous connecter pour publier un commentaire.
OriginalL'auteur kent
je pensais que nous avions un hier....
vous pouvez avoir confiance que le appKit superclasse va définir les polices et les couleurs et des trucs pour les paramètres que vous avez défini dans InterfaceBuilder, donc essayer de remplacer ce comportement est totalement futile. ce que vous POUVEZ faire est de masser le paramètre entrer DANS le tirage au sort de la fonction pour modifier la fonctionnalité... essayez quelque chose comme ceci:
en outre, nikolai est correct: si vous souhaitez modifier la police, puis d'appeler setFont!
OriginalL'auteur kent
Vous pouvez essayer le réglage de la police de la UILabel:
OriginalL'auteur Toney Sui
Je pense que l'appel à [super drawTextInRect:rect] définit également la taille de la police, l'annulation de votre appel à CGContextSetFontSize. Si vous voulez cela, vous aurez probablement à faire tout le dessin vous-même au lieu de l'appeler super de mise en œuvre.
OriginalL'auteur drvdijk
La drawTextInRect méthode de UILabel définit la taille du texte (avec la police et d'autres paramètres) lui-même, en remplaçant votre taille. Si vous souhaitez modifier la taille de la police, pourquoi ne pas simplement utiliser le setFont: méthode ou minimumFontSize propriété?
OriginalL'auteur Nikolai Ruhe
Vous ne le faites pas dans délégué méthodes. Vous avez besoin pour obtenir un pointeur (IBOutlet) à la UILabel.
Vous pouvez ensuite définir la UILabel de la police, de l'audace, etc à l'aide de la UILabel de setText: méthode
Encore une fois, j'étais juste à l'aide de CGContextSetFontSize comme un exemple simple que je pensais que les gens doivent avoir utilisé de l'intérieur drawTextInRect. J'ai pensé que si cela pouvait être fait, alors je pourrais aussi modifier facilement le contour de texte genre de choses.
OriginalL'auteur Brock Woolf