1

これは私を夢中にさせています。iPadでsplitviewアプリを作成しています。

UINavigationBar内にsearchBarを作成しました-このようなもの...

UISearchBar *searchBar = [[UISearchBar alloc] initWitFrame:CGRectZero];
[searchBar setPlaceHolder:@"Search"];
[searchBar sizeToFit];
[searchBar setDelegate:self];
[self.navigatioItem setTitleView:searchBar];

これは、UISearchBarを次のように表示する場合に問題なく機能します...

ここに画像の説明を入力してください

また、このUIBarButtonItemを設定して、サイドペインにマスターナビゲーションコントローラーを表示します。

この問題は、デバイスが横向きに回転し、UIBarButtonItemが非表示になると発生します。次に、searchBarは次のように表示されます...

ここに画像の説明を入力してください

barButtonItemが非表示になり、検索バーのサイズを更新できなかったため、側面にスペースがあるように見えます。

さらに、デバイスをもう一度回転させると、UISearchBarは次のようになります。

ここに画像の説明を入力してください

UINavigationBarに追加された検索バーのサイズを更新するにはどうすればよいですか。autoResizingMaskを使用しても機能しません。

searchBar.autoResizingMask =UIViewAutoresizingFlexibleWidth;

私はここで何を間違っているのですか?

4

1 に答える 1

0

私はほぼ同じ問題を抱えていました(それは検索バーではなく、いくつかのUIViewでした)、そしてそれが私がそれを解決した方法です:

変わらない固定サイズで作成してみてください。つまり、ナビゲーションバーの最小サイズが(たとえば)320ptで、バーボタンが約30ptで、検索バーを真ん中に配置する必要がある場合(ところで、標準ではありません、AFAIK)、320にする必要があります。 -(30 + 10)* 2=240pt。検索バーは真ん中に配置され、十分な場所が空いたままになります。

このように、サイズを変更したり、他のアイテムに影響を与えたりすることはありません。

または、中央ではなく、正しい位置に配置することをお勧めします。

お役に立てば幸いです。

于 2012-06-19T12:25:23.667 に答える