1

Objective-cの写真のような円を描きたいです:

ヘーバーガー画像
(出典:hostingpics.net

下から順に、対応するパーセンテージで塗りつぶされた青い円を描きたいだけです。(注:パーセンテージの範囲は0〜100です)中央の目盛りは気にしないでください。これは、円ビューの上に追加されたimageViewだけです。

4

3 に答える 3

4

2つの画像ビューを作成できます。1つにはチェックマークの付いた円が含まれ、残りは透明になります。もう1つの画像はその下にあり、水色の長方形が付いています。パーセンテージが増加するにつれて、フレームを変更することで青い長方形をどんどん上げていきます。もちろん、上の画像の透明な部分を通して見ることができます。

お役に立てれば!

于 2012-12-16T17:41:59.810 に答える
1
// Draw circle of radius r and center X,Y
CGRect r;
r.origin.y = Y-radius;
r.origin.x = X-radius;
r.size.width = 2*radius;
r.size.height 2*radius;

CGContextRef ctx = UIGraphicsGetCurrentContext();
CGContextAddEllipseInRect(ctx, r);
CGContextSetFillColor(ctx, CGColorGetComponents([[UIColor lightGray] CGColor]));
CGContextFillPath(ctx);

// Draw a blue color filled path. Below is half circle filled with blue color.
CGContextBeginPath(ctx);
CGContextAddArc(ctx, X, Y, r, -M_PI_2, M_PI_2, 1);
CGContextClosePath(ctx); // could be omitted
CGContextSetFillColorWithColor(ctx, [UIColor blueColor].CGColor);
CGContextFillPath(ctx);

アイデアは、円を描いて明るい灰色で塗りつぶし、円の弧からパスを描いて閉じて(必要な角度に関係なく)、青い色で塗りつぶすことです。

于 2012-12-16T17:50:43.177 に答える
0

リーバイスの提案に追加します。

を使用して、直接画像を拡大縮小できますCGAffineTransformScale

例えば:

CGAffineTransform transform = self.rectImageView.transform;
float scale = 0.5;
self.rectImageView.transform = CGAffineTransformScale(transform, 1, scale);

これにより、画像が50%に拡大縮小されます

100%に戻すには、scale=2に設定します。

于 2012-12-16T18:46:33.140 に答える