【发布时间】:2011-06-03 09:57:54
【问题描述】:
我正在为我的应用开发文本添加功能。此文本将使用 CGContext 和 Quartz 2D 添加。变量 text 是从 UITextField 的文本属性中提取的。
这是我目前的代码:
CGRect textBox = CGRectMake(0, 0, 300, 200);
UIView *textView = [[UIView alloc] initWithFrame:textBox];
const char *textChar = [text UTF8String];
NSInteger xLocation = (contentOffset.x + 100);
CGContextSelectFont (UIGraphicsGetCurrentContext(), "Helvetica", 14.0f, kCGEncodingMacRoman);
CGContextSetShouldSmoothFonts(UIGraphicsGetCurrentContext(), YES);
CGContextSetCharacterSpacing (UIGraphicsGetCurrentContext(), 10);
CGContextSetTextDrawingMode (UIGraphicsGetCurrentContext(), kCGTextFill);
CGContextSetRGBFillColor (UIGraphicsGetCurrentContext(), 255, 255, 255, 1.0);
CGContextShowTextAtPoint (UIGraphicsGetCurrentContext(), xLocation, 110, textChar, 9);
[drawGallery addSubview:textView];
我有几个问题:
-
文本呈现翻转 - (这很容易通过转换纠正,但我遵循的教程没有这个问题,所以我有点困惑LINK)。
李> 文本呈现奇怪的字符 - 我认为这是一个编码问题,但我该如何调整呢?
文本不会添加到
addSubview行的视图中,它只会在更新 CGContext 时添加,即我也有画线功能,如果我在视图上画文字神奇地弹出。文本严重锯齿且渲染效果不佳,我可以为此做些什么吗?我添加了
CGContextSetShouldSmoothFonts,但它似乎没有做任何事情。
示例如下:
感谢您提供的任何帮助。
【问题讨论】:
-
您是否在 drawRect 方法中使用了与文本相关的 CGContext* 函数?
标签: objective-c quartz-graphics cgcontext