首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UIBezierPath颜色

UIBezierPath颜色
EN

Stack Overflow用户
提问于 2014-12-06 22:30:33
回答 1查看 63关注 0票数 0

我按照教程创建了一个绘图应用程序。所有这些都能很好地完成平滑的曲线。问题是,当我画的时候,线是黑色的,一旦我松开它,线就变成了我想要的颜色。该教程没有进入线颜色,但我已经改变了它。唯一的问题是,在touchesEnded运行之前,它是黑色的。

这是我的代码:

第一部分将颜色设置为黑色。

代码语言:javascript
复制
- (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上运行此代码:

代码语言:javascript
复制
- (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路径,但我现在真的在挣扎。

有人能帮忙吗?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-11 00:24:34

这是通过在本节中添加这两行来实现的。

代码语言:javascript
复制
- (void)drawRect:(CGRect)rect
{
    [[UIColor redColor]setStroke];  // Added these
    [[UIColor redColor]setFill];    // two lines
    [incrementalImage drawInRect:rect];
    [path stroke];
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27337334

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档