0

私はCGContextRef1つの水平バーを描画するために使用しており、バーの上下にdrawInRectメソッドを使用してテキストを表示していますNSString。コードは次のとおりです:

        CGContextRef context = UIGraphicsGetCurrentContext();//set frame for bar
        CGRect frame;
        frame.origin.x = prevWidth;
        frame.origin.y = heightBar;
        frame.size.height = heightOfBar;
        frame.size.width = 10;

        UIColor* color = [ColorArray objectAtIndex:i];
        CGContextSetFillColorWithColor(context, color.CGColor);
        CGContextSetLineWidth(context, lineWidth);
        CGContextSetStrokeColorWithColor(context, borderColor.CGColor);

        CGContextFillRect(context, frame);
        CGContextStrokeRect(context, frame);
        [nameString drawInRect:frame1 withFont:font lineBreakMode:NSLineBreakByClipping alignment:NSTextAlignmentCenter];

2回目に電話すると、次のようなエラーが表示されます:<Error>: CGContextSetFillColorWithColor: invalid context 0x0.Please help me.Thanking.

4

1 に答える 1

0

エラーは、コンテキストが無効であることを示しています。したがって、2回目の呼び出しは、メソッドを直接呼び出していることを意味すると思います。

ドキュメントに従って

デフォルトでは、現在のグラフィックス コンテキストは nil です。ビュー オブジェクトは、その drawRect: メソッドを呼び出す前に、有効なコンテキストをスタックにプッシュして、現在のコンテキストにします。

コンテキストはメソッドでのみ有効です。コンテンツを更新するには、UIView をdrawRect:呼び出す必要があります。-setNeedsDisplay

于 2013-06-14T09:34:25.593 に答える