我按照这教程创建了一个绘图应用程序。所有这些都能很好地完成平滑的曲线。问题是,当我画的时候,线是黑色的,一旦我松开它,线就变成了我想要的颜色。该教程没有进入线颜色,但我已经改变了它。唯一的问题是,在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路径,但我现在真的在挣扎。
有人能帮忙吗?
谢谢
发布于 2014-12-11 00:24:34
这是通过在本节中添加这两行来实现的。
- (void)drawRect:(CGRect)rect
{
[[UIColor redColor]setStroke]; // Added these
[[UIColor redColor]setFill]; // two lines
[incrementalImage drawInRect:rect];
[path stroke];
}https://stackoverflow.com/questions/27337334
复制相似问题