私のUIWindow
は、最初は白い背景になっています。私は、デバイスが回転しているときに背景を青色に(永久に)変更したいと思います。しかし、実際には、色が青く点滅してから白に戻ります。予想通りデバイスの回転時にUIWindowの背景色を変更します。
- (void)application:(UIApplication *)application didChangeStatusBarOrientation:(UIInterfaceOrientation)oldStatusBarOrientation
{
self.window.backgroundColor = [UIColor blueColor];
}
このコードは呼び出されますが、(私はUIWindow
をサブクラス化することによって発見される)の回転が終了すると、-[UIWindow setBackgroundColor:]
が二度目に呼び出されたときに:
。 2回目の呼び出しのためのコールスタックは、次のとおりです。(@ VinceBurnの答えのため)
-[UIWindow setBackgroundColor]
-[UIWindow _finishedFullRotation:finished:context:]
-[UIViewAnimationState sendDelegateAnimationDidStop:finished:]
-[UIViewAnimationState animationDidStop:finished:]
-run_animation_callbacks
...
編集
アプリケーションは、(Xcodeののビューベースアプリケーションプロジェクトテンプレートから)正確に一つのビューを持っています。ビューの背景色(IBで)を0%の不透明度に設定しました。それでも同じ結果が得られます。
白色が他のいくつかのデフォルトの色設定から来ていないことを確認するために、私は今、最初は緑に、ウィンドウの背景色を設定しています:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
// Add the view controller's view to the window and display.
self.window.backgroundColor = [UIColor greenColor];
[self.window addSubview:viewController.view];
[self.window makeKeyAndVisible];
return YES;
}
それが回転すると、それは簡単に青点滅しますが、に戻ります緑。
最初にどこに白い背景を設定しましたか? –
@ケイ - 詳細を教えてください。 – jlstrecker
@VinceBurn - どこでも設定しないようにしました(白がデフォルトです)。そして、私は '-application:didFinishLaunchingWithOptions:'で設定しようとしました。どちらの方法でも同じ結果が得られます。 – jlstrecker