我正在使用UIBezeirPath,在我的drawRect方法中,我采用硬编码颜色以下面的方式为我的路径(线)设置了描述
- (void)drawRect:(CGRect)rect
{
[[UIColor redColor] setFill];
for (UIBezierPath *_path in pathArray)
{
[_path strokeWithBlendMode:kCGBlendModeNormal alpha:1.0];
}
}
这很好用,并为我绘制的路径(线)设置红色。现在,当我从颜色选项中选择不同的颜色时,假设我选择蓝色,现在当我开始绘制路径时,颜色为蓝色,但是之前绘制的红线也变为蓝色。这就是整个问题
下面是我的代码我如何设置不同的颜色
- (void)drawRect:(CGRect)rect
{
if(changecolor)
{
AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
strokeColor = appDelegate.color;
NSLog(@"%@",strokeColor);
SEL blackSel = NSSelectorFromString(strokeColor);
UIColor* tColor = nil;
if ([UIColor respondsToSelector: blackSel])
tColor = [UIColor performSelector:blackSel];
[tColor setStroke];
[tColor setFill];
}
else
{
[[UIColor redColor] setStroke];
[[UIColor redColor] setFill];
for (UIBezierPath *_path in pathArray)
{
[_path strokeWithBlendMode:kCGBlendModeNormal alpha:1.0];
}
}
}
我是以正确的方式行事,还是我错过了什么。请帮帮我
此致 兰吉特
答案 0 :(得分:5)
只需保持一个数组中的当前颜色和另一个数组中的bezierpath。然后如下图所示。
int q=0;
for (UIBezierPath *_path in pathArray)
{
UIColor *_color = [colorArray objectAtIndex:q];
[_color setStroke];
[_path strokeWithBlendMode:kCGBlendModeNormal alpha:1.0];
q++;
}