初めて SetNeedsDisplayInRect を呼び出したときに IOS5 で気付きました。これにより、デバイスが全画面表示を更新します。これは以前の IOS バージョンとは異なります。
私が取り組んでいるアプリには、描画する必要があるオブジェクトの配列があります (ほとんどの場合、線のサイズが異なる四角形)。いくつかの四角形だけを再描画したい場合は、オブジェクトを "Update"-Array に追加し、SetNeedsDisplayInRect を呼び出して四角形の領域を無効にします。
drawRect-Method 内で、オブジェクトの完全な配列を描画するか、「Update-Array」のみを描画するかを次のように決定します。
BOOL boolDrawFullScreen = CGRectEqualToRect(rect, self.frame);
if (boolDrawFullScreen)
//draw all the objects
else
//draw just the objects within the update-array
IOS5でテストするまで、これは完全に機能しました。実際にはまだ機能しますが、SetNeedsDisplayInRect を呼び出すのは初めてではありません:--> CGRectEqualToRect は常に yes を返します。
何故ですか??私は何を間違っていますか?
どんな提案でも大歓迎です!! ありがとう
トム