试着理解为什么我用CGContextShowTextAtPoint获得低质量的绘图?见附图:

字母"W"是在CALayer上使用CGContextShowTextAtPoint绘制的,看起来非常像素化.它旁边的按钮是一个标准按钮,按预期看起来很高.我想让文字绘图成为高分辨率.

嗨,响应触摸事件,我的应用程序确实查看动画.如果用户真的很快并且即使在当前动画发生时再次触摸,那么一切都搞砸了.
有没有一种标准的方法来处理框架提供的这个问题?或者我是以错误的方式做动画?
目前它正在检查一个标志(animationInProgress)来处理这个问题,但我想知道这是否是我们必须采取的措施?
这是代码:
- (void)animationDidStop:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context {
NSMutableArray *c = (NSMutableArray*)context;
UINavigationController *nc = [c objectAtIndex:0];
[nc.view removeFromSuperview];
animationInProgress = NO;
}
- (void)transitionViews:(BOOL)topToBottom {
if (animationInProgress) {
return;
}
animationInProgress = YES;
NSMutableArray *context = [[NSMutableArray alloc] init];
[UIView beginAnimations:@"myanim" context:context];
[UIView setAnimationDuration:0.7f];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(animationDidStop:finished:context:)];
UIViewController *from;
UIViewController *to;
if (navController3.view.superview == nil ) {
from = navController2;
to = navController3;
} else {
from = navController3;
to = navController2; …Run Code Online (Sandbox Code Playgroud) 可能重复:
触控板手势切换到标题/来源
你现在在狮子座上怎么做?升级并安装新的XCode之后不再工作了,这非常烦人.
为什么以下代码忽略了空格? 
UIColor *textColor = [UIColor colorWithRed:153.0/255.0 green:102.0/255.0 blue:51.0/255.0 alpha:1.0];
CGContextSetFillColorWithColor(ctx, [textColor CGColor]);
CGContextSelectFont(ctx, "Helvetica Neue Bold" , 14, kCGEncodingMacRoman);
CGContextSetTextMatrix(ctx, CGAffineTransformMakeScale(1, -1));
CGContextSetShadowWithColor(ctx, CGSizeMake(0.0, 1.0), 1.0, [[UIColor whiteColor] CGColor]);
//CGContextSetAllowsAntialiasing(ctx, YES);
NSString *str = @"test1 test2";
CGContextShowTextAtPoint(ctx, 5, 17, [str UTF8String], str.length);
Run Code Online (Sandbox Code Playgroud)
将字体名称更改为"Helvetica Neue"会产生空白区域: 
有谁知道这里发生了什么?
我没有实现我自己的,而是考虑重用现有的自定义 NSTextField,它支持建议下拉菜单 - 与浏览器中的下拉菜单相同,当您键入时,您会在下面看到建议列表。
你知道有什么好的吗?
谢谢你!