我想在 UIView 中绘制多个具有不同描边和填充颜色的 UIBezierPath。
这是代码
- (void)drawRect:(CGRect)rect {
context = UIGraphicsGetCurrentContext();
[[UIColor grayColor] setFill];
[[UIColor greenColor] setStroke];
UIBezierPath *aPath = [[UIBezierPath alloc] init];
[aPath moveToPoint:CGPointMake(227,34.25)];
[aPath addLineToPoint:CGPointMake(298.25,34.75)];
[aPath addLineToPoint:CGPointMake(298.5,82.5)];
[aPath addLineToPoint:CGPointMake(251,83)];
[aPath addLineToPoint:CGPointMake(251,67.5)];
[aPath addLineToPoint:CGPointMake(227.25,66.75)];
[aPath closePath];
aPath.lineWidth = 2;
[aPath fill];
[aPath stroke];
UIBezierPath *aPath2 = [[UIBezierPath alloc] init];
[aPath2 moveToPoint:CGPointMake(251.25,90.5)];
[aPath2 addLineToPoint:CGPointMake(250.75,83.25)];
[aPath2 addLineToPoint:CGPointMake(298.5,83)];
[aPath2 addLineToPoint:CGPointMake(298.5,90.25)];
[aPath2 closePath];
aPath2.lineWidth = 2;
[aPath2 fill];
[aPath2 stroke];
[paths addObject:aPath2];
问题在于描边和填充颜色是在当前上下文中设置的。
是否可以在同一个CGContextRef中绘制不同颜色的不同UIBezierPath?
或者我必须在单独的 UIView 中绘制每个 UIBezierPath ?
你应该添加
[desiredStrokeColor setStroke];
[desiredFillColor setFill];
表明这些是必须在这种情况下进一步使用的新颜色。您应该在每次致电之前执行此操作
[aNewPath fill];
[aNewPath stroke];
以便用这些颜色绘制路径。
无需为每个贝塞尔曲线路径使用新视图。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)