Я пытаюсь создать приложение, которое увеличивается приятно на iPhone 4. В настоящее время большая часть из него увеличивается отлично, за исключением одной решающей части: текст, который я рисую в CALayer в его drawInContext: метод. Вот мой код:
- (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. Что в мире? Какие-либо идеи, как я могу зафиксировать это?
Поскольку вы имеете дело с CALayers, вам нужно установить свойство contentsScale вашего слоя на 2.0.
См. этот раздел в руководстве по программированию приложений iPhone для iOS 4.