2011-12-28 5 views
0

私のアプリでは、私のビューコントローラのナビゲーションバーのすぐ下にある検索バーを使用しています。検索するにはsearchDisplayコントローラを使用します。検索バーをクリックするかタップすると私のナビゲーションバーは、ナビゲーションバーの場所でちょうどdisapperです。私の検索バーが来る。そして、私のテーブルビューはわずかに上がってくる。 は、このことは以下のようにメソッドで「searchDisplayControllerWillBeginSearch」を使用している:contentsTbViewが私のテーブルview.The三つのテーブルビューで風景フレームで検索バーに入るとフレームが設定されます

(void) searchDisplayControllerWillBeginSearch:(UISearchDisplayController *)controller{ 
NSLog(@"enter query"); 
[UIView beginAnimations:nil context:NULL]; 
[UIView setAnimationBeginsFromCurrentState:YES]; 
[UIView setAnimationDuration:0.3]; 
if(UI_USER_INTERFACE_IDIOM()==UIUserInterfaceIdiomPad) 
{ 

    [navBarAvtarBani setFrame:CGRectMake(0,-44,768, 44)]; 
    [contentsTbView setFrame:CGRectMake(0, 0, 768, 960)]; 
} 
else { 

[navBarAvtarBani setFrame:CGRectMake(0, -44, 320, 44)]; 
[contentsTbView setFrame:CGRectMake(0, 0, 320, 416)]; 
} 
[UIView commitAnimations]; 

} 

、ナビゲーションバー、検索バーは、インタフェースビルダーと相互作用しています。

これは、ポートレートモードでは問題なく動作します。しかし、アプリを起動して、回転して検索バーをクリックします。上に移動したナビゲーションバーが表示されます。ただし、検索バーのフレームは、 768ではなく1004です。 私は、自動的に回転する必要があります、回転する、uidevice通知を行い、メソッドを回転しました...しかし、これらのメソッドは、最初にそれを呼び出すと、 "searchDisplayControllerWillBeginSearch"が呼び出されます。検索表示コントローラが検索方法を検索します。

答えて

1

両方のモードでアプリケーションを操作する必要がある場合は、XIBでフレームを直接設定します。 Autosizingというオプションがあります。必要に応じてAutosizingを設定してください。フレームは、横または縦に応じて自動的に設定されます。

関連する問題