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

CGContextDrawPathグラフィックス コンテキストにパスが作成されたので、およびCGContextFillPath関数を使用してパスを描画またはアウトライン化できます。

于 2009-04-02T20:31:45.770 に答える