2012-02-04 149 views
1

我是Objective-C和iOS开发的新手。我有一些核心绘图绘制的图。现在我想用颜色填充这些形状,我不知道形状的路径或上下文。 Objective-C是否具有像填充填充或放置像素这样的功能,以便通过只有笔画颜色,我可以在视图内填充任何形状。如何用颜色填充形状

-(void)drawRect:(CGRect)rect 
{ 
    CGContextRef context = UIGraphicsGetCurrentContext(); 
    CGContextSetLineWidth(context, 4.0);  
    CGColorSpaceRef colorspace = CGColorSpaceCreateDeviceRGB();  
    CGFloat components[] = {1.0, 0.0, 0.0, 1.0};  
    CGColorRef color = CGColorCreate(colorspace, components);  
    CGContextSetStrokeColorWithColor(context, color); 

    CGContextMoveToPoint(context, 50, 0); 
    CGContextAddLineToPoint(context, 0,320); 

    CGContextStrokePath(context); 
    CGColorSpaceRelease(colorspace); 
    CGColorRelease(color); 


    CGContextSetLineWidth(context, 2.0); 

    CGContextSetStrokeColorWithColor(context, [UIColor blueColor].CGColor); 
    CGContextSetRGBFillColor(context, 0, 255, 0, 1.0); 

    CGContextMoveToPoint(context, 100, 100); 
    CGContextAddLineToPoint(context, 150, 150); 
    CGContextAddLineToPoint(context, 100, 200); 
    CGContextAddLineToPoint(context, 50, 150); 
    CGContextAddLineToPoint(context, 100, 100); 

    CGContextStrokePath(context); 

    CGContextSetLineWidth(context, 2.0); 

    CGContextSetStrokeColorWithColor(context, [UIColor blueColor].CGColor); 

    CGRect rectangle = CGRectMake(60,170,200,80); 

    CGContextAddEllipseInRect(context, rectangle); 

    CGContextStrokePath(context); 
} 

这将使一个圆和一个广场与一些共同的地区。当用户点击该区域时,我想要一个特定的区域填充颜色。

+0

嗨。你问这个问题后,你有没有找到解决办法?我也可以使用它。 – Levi 2013-04-18 15:22:35

回答

0

把你的绘图代码放在问题中,我可以给你一个具体的答案。

通常你只需要设置使用

[[UIColor redColor] setFill]; 

填充颜色和绘制任何形状的图形核心将充满了色彩自动。

0

试试这个命令: -

CGContextSetStrokeColorWithColor(context, [UIColor blueColor].CGColor); 
+0

事情是,我不想使用上下文或路径。我想要一个类似于洪水填充的函数,或者如果你必须绘制任何视图,你必须使用上下文来将像素放在c – superGokuN 2012-02-04 10:50:47

+0

中。 – Leena 2012-02-04 10:53:08

+0

这里是一个教程,如果你想参考:http://www.techotopia.com/index.php/An_iPhone_Graphics_Drawing_Tutorial_using_Quartz_2D – Leena 2012-02-04 10:54:32

0

核芯显卡是紧密联系在一起的UIView及其drawRect:方法,具有C接口。正如你指出的那样,你总是在当前的图形上下文中绘制。我可以想到2种方法:(1)当用户点击myView时,设置属性如myView.pointTapped,并在drawRect:找到要填充的形状,设置填充颜色,并使用GGGeometry方法填充封闭路径。

有一个客观的C选择:(2)看看UIBezierPath。它不像Core Graphics中的绘图那么全面,但它可以用在你的实现中。