gpt4 book ai didi

ios - drawRect() 画了一个自定义的形状,为什么不能填充颜色?

转载 作者:塔克拉玛干 更新时间:2023-11-01 19:09:47 25 4
gpt4 key购买 nike

我正在编写自定义形状的 HUD 并为其填充一些颜色,但我无法填充 HUD 的正确部分。

#define startX 20
#define startY 20
#define circleDiameter 60
#define PI 3.14159265358979323846

代码如下:

- (void)drawRect:(CGRect)rect

CGContextClearRect(UIGraphicsGetCurrentContext(), rect);
CGContextRef context = UIGraphicsGetCurrentContext();

CGContextSetFillColorWithColor(context, [UIColor clearColor].CGColor);
CGContextFillRect(context,self.bounds);

CGContextSetLineWidth(context, 1.0f);
CGContextSetFillColorWithColor(context, [UIColor colorWithRed:0 green:255 blue:0 alpha:0.5].CGColor);
CGRect circlePoint = CGRectMake(startX, startY, circleDiameter, circleDiameter);
CGContextFillEllipseInRect(context, circlePoint);
CGContextSetStrokeColorWithColor(context, [UIColor blackColor].CGColor);
CGContextAddEllipseInRect(context, circlePoint);
CGContextStrokePath(context);

CGContextSetLineWidth(context, 1.0f);

CGContextSetStrokeColorWithColor(context, [UIColor blackColor].CGColor);

CGContextSetFillColorWithColor(context, [UIColor colorWithRed:0 green:255 blue:0 alpha:0.5].CGColor);
CGContextBeginPath(context);
//line start x.
CGContextMoveToPoint(context, 70, 28);
CGContextAddLineToPoint(context, 170, 28);
CGContextMoveToPoint(context, 70, 72);
CGContextAddLineToPoint(context, 170, 72);
CGContextStrokePath(context);
//draw radius
CGContextAddArc(context, 170, 50, 22, -PI/2, PI/2, 0);
CGContextStrokePath(context);

CGContextClosePath(context);
CGContextFillPath(context);
}

我想用绿色填充整个路径,我该怎么办?

这是结果快照。:result snapshot

最佳答案

使用 BezierPath 绘制带有填充颜色的圆角矩形

UIBezierPath *bezierPath = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(55, 28, 140, 44) cornerRadius:22];
CGContextSetFillColorWithColor(context, [UIColor colorWithRed:0 green:255 blue:0 alpha:0.5].CGColor);
[bezierPath fill];

关于ios - drawRect() 画了一个自定义的形状,为什么不能填充颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17669670/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com