1

ウィンドウを覆うカスタム uiView を作成しています。これは、ナビゲーション コントローラーのおとりの uiview のように機能します。だから私はナビゲーションバーをカバーするためにこのようにしなければならなかった....長い話...

セットアップ方法は次のとおりです。

self.searchPopDown.frame = CGRectMake(0, 20, self.navigationController.view.frame.size.width, self.navigationController.view.frame.size.height-20);

    self.searchPopDown.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;

20 は、ステータス バーを補正するためのものです。

次に、ビューをサブビューとしてアプリ ウィンドウに追加するだけです。

//this will add the view ontop of a modalViewController and support rotation!
UIWindow* window = [UIApplication sharedApplication].keyWindow;
if (!window) {
    window = [[UIApplication sharedApplication].windows objectAtIndex:0];
}

if ([[[window subviews] objectAtIndex:0] isKindOfClass:[SVProgressHUD class]]){
    //There is a chance that the window will be the SVProgressHUD in this case we need to get the main window.

    window = [[UIApplication sharedApplication].windows objectAtIndex:0];
}
    [[[window subviews] objectAtIndex:0] addSubview:self.searchPopDown];

これらすべてがうまく機能します。しかし、私は奇妙なことに気づきました。iPhone では、このビューはアプリの下部にある UITabBar をカバーするようにサイズ変更されます。ただし、iPad では、UITabBar を補うために正しくサイズ変更されます。理由はありますか?

ありがとう

=================

この問題を説明するスクリーンショットを次に示します。これは、ビューがすべての偽のビューをロードすると、どのように見えるかです。ビューが表示されます (ユーザーに関する限り、ビューとナビゲーション バーのボタンがわずかに変更されています。検索すると、この偽のビューが消え、検索結果の下に実際のビューが表示されます。iPad では、偽のビューは表示されません。タブバーを覆わないでください.iPhoneでもこれを行わないのはなぜですか?

iPhoneのタブバーが下に隠れている

ビューは期待どおりに消えます

iPad版は正常に動作します

==========

edit 2 別の奇妙なこと。ナビゲーション コントローラーの高さを取得するためにログ メッセージを生成しています。通常表示するか、モーダルビューとして表示し、タブバーがないかによって、49 ずつ変化します。

したがって、ログには 431 が正しい高さであると書かれています。インターフェイス ビルダーに移動し、431 で測定されたシンプルなピンク色のビューをセットアップします。見栄えがします :) ただし、サイズを手動で 431 に設定すると機能しません。これを正しく機能させるには、サイズを298に設定する必要があります...奇妙な...

ピンクのバーが見えますか?それは文字通り431の高さです...そしてログはそれが私の見解であると言っています..しかし、そうではありません:/

ピンクの大きさ比較

============

編集:3

これを imagebackground までたどりましたが、バブルのロゴのサイズが正しく変更されていません...

4

1 に答える 1

2

イメージビューが含まれていた親ビューで「クリップサブビュー」をチェックする必要がありました...問題を修正しました...

于 2012-10-05T19:59:18.330 に答える