3

setneedsdisplay と uiviewcontentmoderedraw の違いがわかりません。それぞれをいつ使用しますか?まったく同じではありませんか?

4

1 に答える 1

9

それらは異なるものです。 setNeedsDisplay動詞です。これを使用して、ビューが表示しているものの状態が変化したため、再描画する必要があることをビューに伝えます (実行ループの次の繰り返しで drawRect: メソッドを呼び出すことによって)。

contentModeビューの属性です。ビューがすぐに何かを実行するわけではありません。ビューがサイズに応じてコンテンツを処理する方法を指定します。 UIViewContentModeRedrawこのプロパティに割り当てられる可能性のある値です。これは、ビュー自体を再描画することによって (それ自体を呼び出すことによってsetNeedsDisplay) サイズの変更をレンダリングすることを意味します。

ビューのサイズの変更をアニメーション化する場合UIViewContentModeRedrawは、(ビットマップ コピーを操作するのではなく) アニメーション中にゼロから繰り返し再描画しようとするため、コストのかかる選択です。

于 2012-07-05T21:03:04.863 に答える