iPhone: Retina Display пишет шрифт в UIImage

Objective-C Ответы в порядке, я использую MonoTouch для справки.

Я пишу текст поверх UIImage. Retina отображает шрифт прерывисто. Выглядит пиксель удвоенным, что, я думаю, и происходит. Как я могу получить четкий шрифт, написанный на UIImage?

 //context is a CGBitmapContext

 context.SetFillColor (color.CGColor);
 context.SelectFont (font.Name, font.PointSize, CGTextEncoding.MacRoman);

 context.SetTextDrawingMode (CGTextDrawingMode.Fill);
 context.ShowTextAtPoint (pt.X, pt.Y, text);

2 ответа

Решение

Когда вы создаете контекст изображения, вы должны вызвать

UIGraphicsBeginImageContextWithOptions(CGSize size, BOOL opaque, CGFloat scale);

не обычный UIGraphicsBeginImageContext, это будет генерировать контекстно-ориентированное отображение в Retina-дисплее.

Попробуйте округлить координаты, в которых вы отображаете текст. Также проверка кнопки в целом находится на целочисленных смещениях. Если вы размещаете элементы с нецелыми смещениями, iOS с удовольствием перейдет и интерполирует вашу графику, делая вещи "нечеткими".

Другие вопросы по тегам