在Retina显示屏上使用Core Graphics绘图会显得有些粗糙

4
我有一个UIView,在drawRect:rect方法中绘制一个圆。在阅读了苹果关于Retina显示屏的开发信息后,使用Core Graphics似乎意味着绘图会自动利用更高分辨率。然而,与类似标志图标中的圆相比,这个简单的圆看起来相当粗糙。显然,我正在将其与具有光泽和阴影的东西进行比较,但我认为很明显我的圆没有被绘制得很好。我尝试在我的Mac上对苹果的图标徽章和我的圆形进行截图,它们看起来差不多,但是在手机上查看时差异明显。这里是否有什么简单的问题我忽略了?
这是我在drawRect:rect方法中使用的绘图代码:
UIBezierPath* aPath = [UIBezierPath bezierPathWithOvalInRect:
                       CGRectMake(0, 0, 22, 22)];

[[UIColor whiteColor] setStroke];
[[UIColor redColor] setFill];

CGContextRef aRef = UIGraphicsGetCurrentContext();
CGContextTranslateCTM(aRef, 10, 10);
aPath.lineWidth = 3;
[aPath fill];
[aPath stroke];

感谢您的帮助, Rob
1个回答

10

哎呀,首先需要抗锯齿处理:

CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetShouldAntialias(context, YES);

在绘制之前,我添加了这个,然后将其设置为NO,并立即在此之后绘制了另一个圆。 两个并排的圆表明这是问题所在。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接