6

(iOS 7.0.3、Xcode 5.0.1)

ステータスバーの上にカスタム拡大鏡を表示するために使用するアプリに 2 つ目の UIWindow があります。ただし、このウィンドウの rootViewController を設定すると (インターフェイスの回転などのために)、インターフェイスの回転アニメーション中にメイン ウィンドウが黒くなります。

再現するには: シングル ビュー iOS アプリケーションを作成し、メインの UIViewController に以下を追加します。

// To @interface:
@property (nonatomic, strong) UIWindow *secondWindow;
// In viewDidLoad:
self.secondWindow = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
self.secondWindow.rootViewController = [[UIViewController alloc] initWithNibName:nil bundle:nil];
self.secondWindow.hidden = NO;

どんな助けでも感謝します。

4

4 に答える 4

6

実際に機能する回避策を見つけたので、別の回答を追加します。ウィンドウの背景色とビュー コントローラーのビューの背景色をアルファ 0 の色に設定しclearColorますgreenColor] colorWithAlphaComponent:0.0];

于 2014-12-02T23:05:26.473 に答える
1

これは既知の問題であり、多くのレーダーが開いています。これまでのところ、ビューをサブビューとしてウィンドウに追加し、自分で回転を管理するのが最善の解決策です。これはうまくいきます。

于 2013-11-05T22:46:42.683 に答える
1

デベロッパー フォーラムの Apple エンジニアによると、これはウィンドウの背後にあるものが見えないように黒い背景を追加するウィンドウが原因であると予想されます (つまり、通常はメイン ウィンドウの背後)。Apple バグトラッカー #15398141 を開いて発行しました。

それにもかかわらず、ウィンドウを非表示にして で非表示にすることで問題willRotateToInterfaceOrientation:duration:を回避しましたdidRotateFromInterfaceOrientation:。幸いなことに、この場合は大したことではありません。

于 2013-11-05T22:43:50.217 に答える
0

window.opaque = Noデフォルト値が YES のMake 。私の場合、それは問題を解決しました。

于 2016-07-15T15:24:34.887 に答える