3

我想在我的 iPhone 应用程序中有一个与邮件应用程序类似的椭圆。仅供参考的屏幕截图在这里:http ://dl-client.getdropbox.com/u/57676/screenshots/ellipse.png

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

4

1 回答 1

9

啊,一个圆角矩形。这不是太难画。您可以使用贝塞尔路径来获得您想要的。代码如下所示:

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);

既然您在图形上下文中有一条路径,您可以使用CGContextDrawPathandCGContextFillPath函数绘制它或勾勒它的轮廓。

于 2009-04-02T20:31:45.770 回答