0

私はいくつかのカスタマイズを行っており、直面しています

CGContextRef context = UIGraphicsGetCurrentContext();

私の質問:このコンテキストのデフォルトのサイズと、このコンテキストのサイズがどのように定義されているか。

編集 :

link1link2のチュートリアルに従っているため、質問しています...

背景セルが から赤色link1で、ヘッダー セクションも から赤色である場合のコンテキストを見てくださいlink2

しかし、これらのサブクラスであるにもかかわらず、これらの幅は同じではなくUIView、理由を見つけるのに迷っています...

4

1 に答える 1

0

特にRaywenderlichのチュートリアルで非常に明確に述べられている場合は、あなたの質問が何であるかわかりません。

CGContextRef context = UIGraphicsGetCurrentContext();

現在の「キャンバス」が表示されたら、そのキャンバスの状態を変更するだけです。

CGContextRef context = UIGraphicsGetCurrentContext();

CGColorRef redColor = 
    [UIColor colorWithRed:1.0 green:0.0 blue:0.0 alpha:1.0].CGColor;

CGContextSetFillColorWithColor(context, redColor);
CGContextFillRect(context, self.bounds);

アップルのドキュメントによると、サイズはget context関数を呼び出す場所によって定義され、その関数はカスタムdrawRectメソッド内で呼び出されます。

現在のグラフィックスコンテキストはデフォルトでnilです。drawRect:メソッドを呼び出す前に、ビューオブジェクトは有効なコンテキストをスタックにプッシュして最新にします。ただし、UIViewオブジェクトを使用して描画を行っていない場合は、UIGraphicsPushContext関数を使用して、有効なコンテキストを手動でスタックにプッシュする必要があります。

したがって、self.boundsが渡されると、この関数を呼び出した要素のサイズが使用されます。

すべてのセルがdrawRectメソッドを呼び出し、対応するサイズを取得するため、このコードは、さまざまなサイズのさまざまなセルに対して呼び出すこともできます。

おそらくあなたの混乱は、それらがUIViewのサブクラスであるという事実にありますが、ストーリーボードのビューからの「UIView」プロパティを持っているという意味ではありません。これは、それらがuiviewと同じ構造を持つ要素であることを意味します(これがdrawRectを呼び出すことができる理由です)が、目的の動作に合わせて拡張またはカスタマイズすることを意味します。

PD:今日、私があなたの別の質問に答えたことに気づきました。

于 2012-06-04T04:53:06.083 に答える