我想創建一個可以在iPhone 4上很好地放大的應用程序。目前大多數應用程序都完美地擴展了,除了一個關鍵部分:我在裏面繪製的文本一個CALayer,它的drawInContext:方法。這裏是我的代碼:兩臺設備上CGContext文字繪圖不會在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();
}
這短短的農產品清晰的文字,但不幸的是,這兩個產生模糊的文字。這裏是如何出現的:
這種形象在100%縮放採取的iPhone 4在世界什麼?任何想法如何解決這個問題?
這只是一個猜測,我沒有試過看它是什麼。您目前使用的是30pt字體,您可以通過(CGSize)sizeWithFont:(UIFont *)字體測試字符串的大小和60pt字體,如果寬度在您的尺寸目標矩形內,則使用60pt繪製,如果不是,則使用30pt繪製。 iphone4屏幕是iphone屏幕的直接2x,所以我只是猜測渲染文本的兩倍點大小可能工作。 – scottbates22 2010-07-06 17:04:16
這只是讓信件被切斷。參見:http://zcr.me/01g 仍然模糊。只是更大。 – 2010-07-11 22:48:46