J'essaie de créer une application qui évolue bien sur l'iPhone 4. Actuellement, la plupart d'entre elle se reproduit parfaitement, sauf pour une pièce cruciale: le texte que je dessine à l'intérieur un CALayer, à l'intérieur de sa méthode drawInContext: Voici mon code:CG Le dessin du texte contextuel ne passe pas à l'échelle sur l'iPhone 4
- (void)drawInContext:(CGContextRef)context {
UIGraphicsPushContext(context);
CGContextSetGrayFillColor(context, 1.0f, 1.0f);
CGContextFillRect(context, self.bounds);
CGContextSetAllowsAntialiasing(context, true);
CGContextSetShouldAntialias(context, true);
CGContextSetAllowsFontSmoothing(context, true);
CGContextSetShouldSmoothFonts(context, true);
CGContextSetAllowsFontSubpixelQuantization(context, true);
CGContextSetShouldSubpixelQuantizeFonts(context, true);
CGContextTranslateCTM(context, 0.0f, self.frame.size.height);
CGContextScaleCTM(context, 1.0f, -1.0f);
CGContextSetFillColorWithColor(context, [[UIColor blackColor] CGColor]);
CGContextSelectFont(context, "CardKit", 30.0f, kCGEncodingMacRoman);
CGContextSetTextDrawingMode(context, kCGTextFill);
CGContextShowText(context, "A", sizeof("A"));
UIGraphicsPopContext();
}
Ce court produit des textes nets sur les deux appareils, mais malheureusement, il produit un texte flou sur les deux. Voici comment il apparaît:
Cette image est prise au zoom 100% sur l'iPhone 4. Que dans le monde? Des idées comment je peux résoudre ce problème?
c'est juste une supposition à regarder, je n'ai pas essayé de voir ce qu'il fait. Vous utilisez actuellement la police 30pt, vous pouvez tester la taille de la chaîne avec la police 60pt via la police (CGSize) sizeWithFont: (UIFont *) et si la largeur est dans votre taille cible rect puis dessiner en utilisant 60pt et sinon dessiner en utilisant 30pt . l'écran iphone4 est un 2x direct de l'écran de l'iphone, donc je devine juste que le texte de rendu à deux fois la taille du point pourrait fonctionner. – scottbates22
Cela ne fait que couper la lettre. Voir: http://zcr.me/01g Toujours flou. Juste plus gros. –