0

私は、グローバルにUIWindowすべてのコントローラーにメニューをフローティング表示する を作成しました。ウィンドウが常に表示され、ユーザーがその背後にあるコントローラーと対話できるようにレベルを設定したいと考えています。ウィンドウには、ユーザーのタップで拡大/縮小するコントローラーが含まれています。以下の写真をご覧ください。

ここに画像の説明を入力 ここに画像の説明を入力

現在、私は次のアプローチを試しました:

UIWindow *statusWindow = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
statusWindow.windowLevel = UIWindowLevelAlert; //Have tried all three
statusWindow.hidden = NO;

[statusWindow addSubview:_gmDemo.view];//my controller's view
[statusWindow bringSubviewToFront:_gmDemo.view];

このコードは、その背後にあるコントローラーとの対話をブロックします。さらに、に設定するとUIWindowLevelNormal - 1、ウィンドウは非表示になりますが、他のコントローラーとやり取りできます。

私の目標を達成するための正しい方法を教えてください。ありがとう。

注:私はすでにこの記事を読んでいます。

4

1 に答える 1

2

自分で解決策を見つけました。問題は UIWindow のフレームとレベルでした。まず、レベルを に設定しますUIWindowLevelNormal。第二に、メニューのボタンタップでウィンドウのフレームを動的に処理しました。メニューを展開/縮小する必要がある場合は、デリゲートの呼び出しで UIWindow のサイズを適切に増減します。それでおしまい。

于 2013-09-05T08:43:06.073 に答える