標準的な方法 (画面の下から上にスライド) でユーザーに表示したいビューがあります。このビューの約半分は透明な背景で、下半分にはいくつかの入力フィールドがあります (キーボードがポップアップする様子を想像してください)。rootViewControllerを呼び出す[self presentViewController]
と、ビューが上にスライドしますが、約 0.5 秒後に、以前は透明だったビューが代わりに黒に置き換えられます。これは、presentViewController と presentModalViewController の両方で発生します。この動作を変更するにはどうすればよいですか?
質問する
8594 次
5 に答える
3
私の知る限り、モデル ビュー コントローラーを提示する場合、透明な背景はサポートされていません。コントローラーをルート ビュー コントローラーに保持し、単にサブビューをルート ビュー コントローラーに追加してみてください。
于 2012-10-29T05:57:37.087 に答える
0
最終的に、透明にすることはできないようです。このビューをルート ビュー コントローラーの境界外のサブビューとして追加し、アニメーション ブロックを使用して所定の位置にスライドさせることで、これを回避しました。追加のコードはそれほど多くありませんが、標準の iOS の動作を使用してそれを行うことができればよかったでしょう。
于 2012-10-30T03:28:37.643 に答える
0
でコントローラーを作成すると、少し遅れて黒い背景が表示されるという同様の問題がありました
Disclaimer *vc = [[Disclaimer alloc]init];
私の問題を解決したのは、IBで対応するオブジェクトを作成し、そのストーリーボードIDを使用してviewcontrollerをインスタンス化することでした:
Disclaimer *vc = (Disclaimer *)[self.storyboard instantiateViewControllerWithIdentifier:@"SBIDDisclaimer"];
[self presentViewController:vc animated:YES completion:nil];
IB経由で行うと、追加の初期化が行われると思います。
于 2013-12-15T20:51:14.453 に答える