4

iPad では、モーダルにプッシュされたビューでアプリの外観を変更できます。しかし、テーマを選択してビューを閉じても、外観は変わりません。他のビューを全画面表示にすると、ビューが更新されます。

外観を強制的に更新/リフレッシュ/再描画するにはどうすればよいですか?

編集

setNeedsDisplayをどこでも遊んでみましたが、アプリが直接反応しません。参照が言ったように、ビューはループが再開するとすぐに再描画されるようにマークされています。

ビューは、モーダルにプッシュされた外観チェンジャー ビューの背後にある別の外観で既に読み込まれているため、再読み込みされません。

4

3 に答える 3

2

早速直しました。

フルスクリーンのモーダル ビューから始めて、テーマを変更した後、ビューを閉じると、その背後にあるビューが更新されます。

誰かがより良い解決策を持っているなら、私は本当にそれについて聞きたい.

于 2011-11-10T14:01:55.510 に答える
0

UISlidersの外観を変更するのとほぼ同じ問題がありました。使用し[self.view setNeedsDisplay]ても効果はありませんでした。

下のコード行では、スライダーの外観は期待どおりに変更されませんでしたが、その後、別のビューが読み込まれて閉じられた場合にのみ変更されました。

[[UISlider appearance] setMinimumTrackTintColor:[UIColor greenColor]]; 

スライダーごとにIBOutletsを作成し、以下のように色合いを設定すると、目的の効果が得られ、変更がすぐに行われました。

[volumeSlider setMinimumTrackTintColor:[UIColor greenColor]];
[brightnessSlider setMinimumTrackTintColor:[UIColor greenColor]];
于 2012-01-23T18:58:27.183 に答える
0

[view setNeedsDisplay]通常、ビューを再描画する必要があることを伝えるために使用されます。

[view setNeedsLayout]は同じです-layoutSubviews

見る:

于 2011-11-04T10:08:14.223 に答える