1

クォーツフレームワークで線を描いたり消したりしようとしています。

しかし、私はいくつかの問題に直面しています。

ご意見をお聞かせください。

Q1)フォローメソッドを作成し、UIButtonを押すとメソッドを実行します。

- (void)drawCustom {

    cgc_Context = UIGraphicsGetCurrentContext();

    CGContextSetLineWidth(cgc_Context, 5.0);
    CGContextSetStrokeColorWithColor(cgc_Context, [UIColor yellowColor].CGColor);
    CGContextMoveToPoint(cgc_Context, 0, 0);
    CGContextAddLineToPoint(cgc_Context, 200, 50);
    CGContextStrokePath(cgc_Context);
}

しかし、私が得た結果は次のとおりです。

suckjuui-iMac.local QuartzTest [5008]:CGContextSetLineWidth:無効なコンテキスト0x0 Jul 20 20:22:50

suckjuui-iMac.local QuartzTest [5008]:CGContextSetStrokeColorWithColor:無効なコンテキスト0x0 Jul 20 20:22:50

suckjuui-iMac.local QuartzTest [5008]:CGContextMoveToPoint:無効なコンテキスト0x0 Jul 20 20:22:50

suckjuui-iMac.local QuartzTest [5008]:CGContextAddLineToPoint:無効なコンテキスト0x0 Jul 20 20:22:50

suckjuui-iMac.local QuartzTest [5008]:CGContextDrawPath:無効なコンテキスト0x0

上記のようにメッセージが表示されるのはなぜですか?

Q2)描いた線を消すには?

4

2 に答える 2

2

2番目の質問について。

wattson12に従って、描画はdrawRectで行う必要があるため、線を消去することはできません。再描画できるのはグラフィックスのみです(消去したいものを差し引いたもの)。

于 2012-07-20T12:32:19.537 に答える
0

最初の問題の場合:

drawRect内から呼び出していない場合、UIGraphicsGetCurrentContextはnilを返します。

このコードをカスタムUIViewサブクラスのdrawRectメソッドに移動します

于 2012-07-20T11:40:04.067 に答える