2011-02-08 26 views
1

だから私はシェイプを描くこのアプリケーションを持っていて、ユーザーはそれを色付けできます。私は4つの図形を持つタブバーを作成し、クリックするとそれぞれの図形が描画されます。私はquartzDemoから描画のアイディアを取った。だから私はシェイプの一般的なクラスとshape_nameサブクラスを持っています。正方形のコードは次のとおりです。コアグラフィックスの色の背景

@implementation Square 

- (void)drawInContext:(CGContextRef)context { 
    CGContextSetRGBStrokeColor(context, 0.0, 0.0, 0.0, 1.0); 
    CGContextSetLineWidth(context, 1.0);  
    CGContextBeginPath(context); 
    CGContextMoveToPoint(context, 1, 1); 
    CGContextAddLineToPoint(context, 1, 79); 
    CGContextAddLineToPoint(context, 79, 79); 
    CGContextAddLineToPoint(context, 79, 1); 
    CGContextAddLineToPoint(context, 1, 1); 
    CGContextClosePath(context); 
    CGContextStrokePath(context); 

} 

@end 

形状をタップすると、カラーメニューが表示され、メニューからボタンをタップすると色を変更したいと考えています。これどうやってするの。

Ty。私はこのようなあなたの基本形状クラスにプロパティを追加することをお勧め

答えて

4

:あなたのメニューの実装では

@property(nonatomic,retain) UIColor* fillColor; 

は、ユーザーの好みのUIColorオブジェクトにプロパティの値を設定し、形状setNeedsDisplayを送信します。次にdrawInContext:の方法を次のように変更してください。

CGContextSetFillColorWithColor(context, self.fillColor.CGColor); 
// ... your current drawing code goes here 
// replace the last line, with CGContextStrokePath(), with this: 
CGContextDrawPath(context, kCGPathFillStroke); 
+0

それを行った...ありがとう –