2

メソッドのビュー コントローラーのルート ビューにいくつかのサブビューを追加していますviewDidLoad。その後すぐに、特定のイベントが発生すると、ビューの 1 つで背景色を変更するだけです。この変更は、サブビューが再度レイアウトされるまで (willLayoutSubviews呼び出される) 表示されません。これは、デバイスの向きを変更するか、10 ~ 20 秒待機すると発生します。setNeedsDisplay変更を行った直後にサブビューを呼び出していますが、役に立ちません。

要約すると、特定のイベントが発生した後にサブビューの背景色を変更しようとしているだけで、おそらく1秒以内に変更が画面に表示されるようにしたいと考えています。私は何が欠けていますか?

注: 重要な場合、問題のビューのスーパービューはGLKView.

4

1 に答える 1

2

メイン スレッドからのみ UI の更新を行っていることを確認してください。performSelectorOnMainThread:withObject:waitUntilDone:またはを使用してこれを修正できますdispatch_async(dispatch_get_main_queue(), ^{/* your UI modifying code here */});

于 2013-04-30T21:38:41.193 に答える