0

いくつかのプロパティで UIView をコピーしようとしています。UIView は drawLayer: メソッドをオーバーライドしてカスタム形状を描画します。

プロパティを取り戻すために、NSKeyedArchiver、ペーストボード、および NSKeyedUnarchiver を使用しています。UIView のインスタンスが作成され、プロパティが設定されます。これまでのところすべて問題ありません。

一部のプロパティは drawlayer メソッドで作成され、コピーされた値ではなくデフォルト値を持ちます。私の質問は、initWithCoder が呼び出され、インスタンスが作成されたときです。drawRect または drawLayer は呼び出されませんか? なんで?

4

1 に答える 1

1

drawLayer/drawRect は、コンテンツをレンダリングまたは再レンダリングする必要がある場合に、オンデマンドで (控えめに) 呼び出されます。必要がないため、おそらく初期化中に呼び出されません。後でビューが画面に表示され、レンダリングが必要になったときに呼び出す必要があります。

また、drawLayer でいくつかのプロパティを作成しているということですか? それらを何らかの初期化メソッドに移動することを検討し、描画メソッドを描画のみに集中させてください。

于 2012-06-27T13:37:34.987 に答える