実装したいアイデアがあります:
基本的に、アプリケーションにログインしているかどうかを簡単に区別できるようにしたいと考えています。私の考えでは、ユーザーがログインしていない場合、アプリは UIAppearence プロキシで背景色などを設定します。ログイン後、これらの値は UIAppearence 設定を変更することで変更されます。
私はこの種の作品を見つけましたが、UIAppearence を変更した後にすべての UI 要素が更新されるわけではありません。最も顕著な例は、私の UITabBarController (私のウィンドウの rootViewController) のタブ バーです。
この問題の解決策を探しているときに、ビューを更新して UIAppearence への変更を適用するために呼び出す必要があるいくつlayoutSubviews
かの提案を見つけました。drawRect
ただし、アプリのデリゲートで次のすべてを試しましたが、成功しませんでした。
[self.window.rootViewController.view setNeedsLayout]
[self.window.rootViewController.view setNeedsDisplay]
[self.tabbarController.tabBar setNeedsLayout]
[self.tabbarController.tabBar setNeedsDisplay]
[self.tabbarController.view setNeedsLayout]
[self.tabbarController.view setNeedsDisplay]
タブバー (およびその他のビュー) を強制的に再描画する方法について、トリックや洞察を持っている人はいますか? layoutSubviews
UIView階層のずっと下まで呼び出しを送信したいだけだと思っていますが、そうであれば、まだそれを行う方法が見つかりません。