我想在一个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?
setNeedsDisplay
,因为它会调用drawRect:
方法。 - Deepak DanduprolusetNeedsDisplay
会导致视图被清除并重新绘制(使用drawRect
,没有更多或更少)。 - Cowirrie