4

我有一个 UIView,它从 drawRect:rect 内部绘制一个圆圈。在阅读了 Retina 显示屏上的 Apple 开发信息后,似乎使用 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];

感谢您的帮助,罗布

4

1 回答 1

10

糟糕,它首先需要抗锯齿:

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

我在绘制之前添加了它,然后将其设置为 NO,然后立即绘制了另一个圆圈。两个圆圈并排显示这就是问题所在。

于 2011-03-13T19:02:33.013 回答