iPhone:Retina显示写字体到UIImage

时间:2012-02-15 22:39:08

标签: iphone ios xamarin.ios uifont cgbitmapcontext

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);

enter image description here

2 个答案:

答案 0 :(得分:6)

创建图像上下文时,应调用

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

不是常规的UIGraphicsBeginImageContext,这将生成Retina显示中的上下文显示。

答案 1 :(得分:1)

尝试舍入显示文本的坐标。此外,检查整个按钮是否为整数偏移。如果将元素放置在非整数偏移处,iOS将很乐意去插入图形,使事物“模糊”。