J'affiche la colonne de chaîne NSAttributed en utilisant Core Text. Cela fonctionne bien. Lorsque vous utilisez une police système, elle s'affiche sans délai dans le simulateur et le périphérique. Mais lorsque vous utilisez une police personnalisée, plus de temps est nécessaire pour afficher le contenu dans l'appareil. Mais dans le simulateur, le résultat est rapide.Plus de temps est nécessaire pour afficher la chaîne NSAttributed avec des polices personnalisées
- (void)updateAttributedString
{
// Existing Code
if (self.text != nil)
{
self.attributedString = [[NSMutableAttributedString alloc] initWithString:self.text];
NSRange range = NSMakeRange(0, [self.text length]);
// Regarding Fixed font
// [ self.attributedString addAttribute:NSFontAttributeName value:[UIFont fontWithName:@"TAUN_Elango_Abirami" size:20] range:range];//This is my custom font
// Regarding custom Font using below code
if (self.font != nil) {
CTFontRef font = [self createCTFont];
[self.attributedString addAttribute:(NSString *)kCTFontAttributeName
value:(__bridge id)font
range:range];
CFRelease(font);
}
}
}
- (CTFontRef)createCTFont;
{
CTFontRef font = CTFontCreateWithName((CFStringRef)self.fontName, self.pointSize, NULL);
return font;
}
Si j'ajoute la ligne de code suivante,
[self.attributedString addAttribute:(NSString *)kCTFontAttributeName
value:(__bridge id)font
range:range];
afficher la chaîne attribuée est lent dans le dispositif. Mais, dans le simulateur c'est rapide. Si je n'ajoute pas ce morceau de code, le texte s'affiche rapidement dans le simulateur et l'appareil. Créez votre objet de police une fois et maintenez-le dans votre main.
Quelle est votre question? –
@AlbertRenshaw Je dois utiliser une police personnalisée et je veux que le texte soit affiché sans délai dans l'appareil. La lenteur est le problème. – Sharon
Si vous utilisez le profilage temporel des instruments XCode, indique-t-il une ligne spécifique? De plus, avez-vous besoin d'utiliser CoreText, CFStuff et bridge? – Larme