0

メール コンポーザをモーダルに表示すると、問題なく動作します (ここでは、MFMailComposeViewController* _mailer);

[self presentModalViewController:_mailer animated:YES];

ただし、ビューを現在のビューに追加すると、

[self.view addSubview: _mailer.view];

コンポーザ ビューは、ウィンドウの一番上まで移動しません。MFMailComposerビューの上部とステータス バーの間に数行のギャップがあります。

モーダル プレゼンテーションの代わりにビューを追加したい理由は、タブ バーを使用していて、それを覆い隠したくないからです。[あなたは自問するかもしれません.なぜ彼はコンポーザーウィンドウをタブバーに直接接続しないのですか? その理由はMFMailComposer、タブから起動されたワークフローの一部であるが、コンポーザ ビューから開始されないためです]。

Apple のドキュメントには次のように書かれています。

このビュー コントローラーによって管理されるビューを表示するには、ビューコントローラーを表示するための標準的な手法のいずれかを使用できます

上部にギャップがある理由や、メール コンポーザーをうまく動作させる方法について、誰か考えがありますか?

4

1 に答える 1

0

_mailer.viewのフレームをself.viewの境界に等しく設定してみてください。デフォルトのフレームは、上部にあるステータスバーを補正しようとしていると思います。(私の推測では、ビューの原点はデフォルトで0ではなく20になっています)

于 2011-03-26T19:48:47.983 に答える