Objective-cの写真のような円を描きたいです:
(出典:hostingpics.net)
下から順に、対応するパーセンテージで塗りつぶされた青い円を描きたいだけです。(注:パーセンテージの範囲は0〜100です)中央の目盛りは気にしないでください。これは、円ビューの上に追加されたimageViewだけです。
Objective-cの写真のような円を描きたいです:
(出典:hostingpics.net)
下から順に、対応するパーセンテージで塗りつぶされた青い円を描きたいだけです。(注:パーセンテージの範囲は0〜100です)中央の目盛りは気にしないでください。これは、円ビューの上に追加されたimageViewだけです。
2つの画像ビューを作成できます。1つにはチェックマークの付いた円が含まれ、残りは透明になります。もう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);
アイデアは、円を描いて明るい灰色で塗りつぶし、円の弧からパスを描いて閉じて(必要な角度に関係なく)、青い色で塗りつぶすことです。
リーバイスの提案に追加します。
を使用して、直接画像を拡大縮小できますCGAffineTransformScale
。
例えば:
CGAffineTransform transform = self.rectImageView.transform;
float scale = 0.5;
self.rectImageView.transform = CGAffineTransformScale(transform, 1, scale);
これにより、画像が50%に拡大縮小されます
100%に戻すには、scale=2に設定します。