我按照this教程创建了一个绘图应用程序。这一切都非常适合制作流畅的曲线。问题是,当我绘制线条是黑色时,一旦我放开它就会使线条成为我想要的颜色。本教程没有采用直线颜色,但我对其进行了修改。唯一的问题是它会在touchesEnded
运行之前变黑。
这是我的代码:
第一部分将颜色设置为黑色。
- (id)initWithCoder:(NSCoder *)aDecoder
{
if (self = [super initWithCoder:aDecoder])
{
[self setMultipleTouchEnabled:YES];
path = [UIBezierPath bezierPath];
[path setLineWidth:10.0];
red = 0.0/255.0;
green = 0.0/255.0;
blue = 0.0/255.0;
brush = 10.0;
opacity = 0.8;
toolSelected = 1;
bgImage = 1;
}
return self;
}
然后在touchesEnded
上运行此代码:
- (void)drawBitmap
{
UIGraphicsBeginImageContextWithOptions(self.bounds.size, NO, 0.0);
if (!incrementalImage) // first time; paint background white
{
UIBezierPath *rectpath = [UIBezierPath bezierPathWithRect:self.bounds];
[[UIColor clearColor] setFill];
[rectpath fill];
}
[incrementalImage drawAtPoint:CGPointZero];
UIColor *colour = [UIColor colorWithRed:red green:green blue:blue alpha:opacity];
[colour setStroke];
[path stroke];
incrementalImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
}
我认为需要在touchesMoved
中运行某些东西以使bezier路径变得更加鲜明,但我现在才真正在努力解决这个问题。
有人可以帮忙吗?
感谢
答案 0 :(得分:0)
最后通过在本节中添加这两行来实现
- (void)drawRect:(CGRect)rect
{
[[UIColor redColor]setStroke]; // Added these
[[UIColor redColor]setFill]; // two lines
[incrementalImage drawInRect:rect];
[path stroke];
}