5

このコードを使用して、キーボードを含む他のすべてのビューの上に半透明のビューを配置して、画面に色合いを付けることができました。

int count = [[[UIApplication sharedApplication]windows]count];
[[[UIApplication sharedApplication] windows] objectAtIndex:count-1]addSubview:tintView];

今、私は問題に遭遇しました。私のアプリは、MessageUI.framework を使用して MFMessageComposeViewController を表示します。これにより、ユーザーはテキスト メッセージを送信できます。ここで私は問題に遭遇します。

この場合 (メッセージ ビューが表示されているとき) に上記のコードを実行すると、正しく動作します。問題は、ユーザーがその下のメッセージ ビューを操作できなくなることです。私は tintView で userinteractionenabled を NO に設定していますが、この場合、問題は解決しません。

ただし、ティント ビューの非表示を YES に設定すると、対話が可能になります。このプロパティを変更すると、メッセージ ビューを操作できるようになります。明らかに、tintView を表示したいのですが。

最上位の UIWindow のビューを NSLogged したところ、UIRemoteView (これに関する情報はまったく見つかりませんでしたが、MessageUI.framework でビューを表示しているように見えます) は、tintView がその上にあるときにタッチを受けないビューであることがわかりました。

別の UIView が表示されていても、MFMessageComposeViewController との対話を許可するにはどうすればよいですか。この場合、Userinteractionenabled は機能しませんが、ビューを非表示 (これは私が望んでいるものではありません) に設定すると機能します。

4

1 に答える 1