在iPhone应用程序中绘制椭圆的最佳方法是什么?

时间:2009-04-02 19:40:28

标签: iphone cocoa cocoa-touch quartz-graphics

我想在我的iPhone应用程序中使用与Mail应用程序类似的椭圆。仅供参考的屏幕截图位于:http://dl-client.getdropbox.com/u/57676/screenshots/ellipse.png

最终我想要一个以数值为中心的椭圆。是否最好使用UIImage执行此任务?使用Quartz绘制它的开销可能更少?如果用Quartz完成,那么任何人都可以显示绘制它的解决方案吗?

1 个答案:

答案 0 :(得分:9)

啊,圆角矩形。这不是很难画。您可以使用Bezier路径获得所需内容。代码如下所示:

CGRect rect;
CGFloat minX = CGRectGetMinX(rect), minY = CGFloatGetMinY(rect), maxX = CGFloatGetMaxX(rect), maxY = CGRectGetMaxY(rect);

CGFloat radius = 3.0; // Adjust as you like
CGContextBeginPath(context);
CGContextMoveToPoint(context, (minX + maxX) / 2.0, minY);
CGContextAddArcToPoint(context, minX, minY, minX, maxY, radius);
CGContextAddArcToPoint(context, minX, maxY, maxX, maxY, radius);
CGContextAddArcToPoint(context, maxX, maxY, maxX, minY, radius);
CGContextAddArcToPoint(context, maxX, minY, minX, minY, radius);
CGContextClosePath(context);

现在您的图形上下文中有一条路径,您可以使用CGContextDrawPathCGContextFillPath函数绘制或勾画它。