カスタム UIView クラスの背景色を設定しようとしています。drawRect:
このクラスはメソッド内でクオーツ描画も行います。
背景色の変更はビューの次の再描画まで行われないため、backgroundColor
呼び出す前に UIView のプロパティを変更しsetNeedsDisplay
ます。UIActivityIndicatorView
ビューの再描画中にアニメーション化するように設定しました。
self.backgroundColor = theColor;
[indicator startAnimating];
[self performSelectorInBackground:@selector(setNeedsDisplay) withObject:nil];
インジケータは の最後で停止しsetNeedsDisplay
ます。theColor
これを呼び出す必要があるたびに変更されます。
setNeedsDisplay
時間のかかるプロセスがあるとしましょう。背景を設定し、インジケーターのアニメーションを維持したいと思います。現在、backgroundColor
呼び出しを変更していますsetNeedsDisplay
が、メソッドが実行されるまで backgroundColor は変更されませんperformSelectorInBackground
! したがって、アプリがハングし、インジケーターがアニメーション化されません。この順序付けの問題をどのように処理すればよいですか? ありがとう。
編集:drawrect:
時間がかかるかもしれないという意味でした。