3

メソッドでまったく言及されていないときにsetStroke、ストロークを設定する方法をどのように知っているのだろうかと思っていました。contextcontextsetStroke

CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetLineWidth(context, 10);
[[UIColor colorWithRed:0.6 green:0.6 blue:0.6 alpha:1.0] setStroke];

ところで、自分のオブジェクトをプログラムで描画する頻度はどれくらいですか?

4

2 に答える 2

3

setStrokeこれはあなたの色の実装です:

- (void)setStroke {
    CGContextSetStrokeColorWithColor(UIGraphicsGetCurrentContext(), self.CGColor);
}

同じ関数を使用して、使用しているコンテキストを取得します。

于 2012-08-13T20:33:14.040 に答える
2

コンテキストを取得して線幅を設定するのと同じ方法で、色でストロークを設定するのと同じ方法です。その理由は、によって取得されたメインスレッドの現在のグラフィックスコンテキストが1つしかないためですUIGraphicsGetCurrentContext()。さまざまなコンテキストをプッシュおよびポップできますが、その関数は常に現在のコンテキストを返します。iOSでは、この関数はスレッドセーフではなく、メインスレッドからのみ呼び出す必要があることに注意してください。

于 2012-08-13T20:23:29.397 に答える