Xcode - 围绕中心绘制圆圈

时间:2014-07-25 11:28:07

标签: ios xcode drawing core-graphics

我想知道如何在控制器定位点周围绘制一个圆圈。

这不符合希望

    CGContextRef contextRef = UIGraphicsGetCurrentContext();
CGContextSetLineWidth(contextRef, 2.0);
CGContextSetRGBFillColor(contextRef, 0, 0, 1.0, 1.0);
CGContextSetRGBStrokeColor(contextRef, 0, 0, 1.0, 1.0);
CGRect circlePoint = (CGRectMake(self.frame.size.width / 2, self.frame.size.height / 2, 10.0, 10.0));

CGContextFillEllipseInRect(contextRef, circlePoint);

2 个答案:

答案 0 :(得分:4)

我认为使用UIBezierPath绘制圆圈非常容易。您需要做的就是创建UIView的子类并创建UIBezierPath。我使用UIBezierPath创建了一个示例:

创建一个名为CirecleView的UIView的子类。添加以下代码:

#import "CircleView.h"

@implementation CircleView

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        // Initialization code
    }
    return self;
}

- (void)drawRect:(CGRect)rect
{
    CGFloat rectX = self.frame.size.width / 2;
    CGFloat rectY = self.frame.size.height / 2;
    CGFloat width = 100;
    CGFloat height = 100;
    CGFloat centerX = rectX - width/2;
    CGFloat centerY = rectY - height/2;


    UIBezierPath *bezierPath = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(centerX, centerY, width, height)];

    [[UIColor blackColor] set];
    [bezierPath stroke];
}

@end

将控制器的视图类更改为CircleView。请看下面的图片。

enter image description here

多数民众赞成。运行代码以显示控制器的视图。以下是输出:

enter image description here

您可以从here

中删除代码示例

答案 1 :(得分:1)

你只需要翻译到第一点

cgContextRef.translateBy(x:circlePoint.x, y:circlePoint.y)

注意这是Swift 3,它可能与其他语言不同,只是搜索"翻译cgcontext"