我正在从事UIBezierPath
用于绘图的项目。我的问题是当我改变路径的颜色时,整个UIBezierPath
颜色都会改变。我想问一下是否可以UIBezierPath
用多条线改变颜色。
问候
我正在从事UIBezierPath
用于绘图的项目。我的问题是当我改变路径的颜色时,整个UIBezierPath
颜色都会改变。我想问一下是否可以UIBezierPath
用多条线改变颜色。
问候
对于一个单一的 UIBezier 路径,你不能 AFAIK
你可以做这样的事情
///// 在drawRect中添加这个
for (NSMutableDictionary *dic in pathArray) {
UIBezierPath *_path = [dic valueForKey:@"path"];
[[dic valueForKey:@"fColor"] setFill];
[[dic valueForKey:@"sColor"] setStroke];
[_path stroke];
}
在触摸事件中填充数组
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
self.currentPath=[[UIBezierPath alloc]init];
self.currentPath.lineWidth=5;
self.currentPath.miterLimit=-10;
self.currentPath.lineCapStyle = kCGLineCapRound;
self.currentPath.flatness = 0.0;
UITouch *mytouch=[[touches allObjects] objectAtIndex:0];
[self.currentPath moveToPoint:[mytouch locationInView:self]];
NSMutableDictionary *dic = [[NSMutableDictionary alloc] init];
[dic setObject:currentfColor forKey:@"fColor"];
[dic setObject:currentsColor forKey:@"sColor"];
[dic setObject:self.currentPath forKey:@"path"];
[pathArray addObject:dic];
}
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [touches anyObject];
[self.currentPath addLineToPoint:[touch locationInView:self.view]];
[self.view setNeedsDisplay];
}
PS:这只是一个例子。我还没有检查过这段代码,但它应该可以工作,可能需要一些改动。