1

這讓我瘋狂。我正在iPad上創建一個splitview應用程序。UINavigationBar中的UISearchBar在旋轉方向時更改寬度

我創建了UINavigationBar的內搜索欄 - 這樣的事情...

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

這工作得很好,我顯示的UISearchBar這樣的...

enter image description here

我也有這個UIBarButtonItem設置爲在側面板中顯示主導航控制器。

問題發生在設備旋轉到橫向並且UIBarButtonItem被隱藏時。然後,搜索欄會出現這樣的...

enter image description here

沒有對雙方的一些空間,似乎有自barButtonItem得到了隱藏和搜索欄的大小無法更新。

而且,當我再次旋轉設備,這裏發生了什麼的UISearchBar

enter image description here

如何更新搜索欄的大小,一旦被添加到UINavigationBar的。即使使用autoResizingMask也不起作用。

searchBar.autoResizingMask =UIViewAutoresizingFlexibleWidth; 

我在這裏做錯了什麼?

回答

0

我對同樣的問題(這不是搜索欄,但一些UIView的),這就是我如何解決它:

嘗試使用固定大小不會改變創建它。我的意思是,如果你的導航欄的最小尺寸是(例如)320pt,而barbutton是30pt,並且你需要將搜索欄放在正中間(這個,BTW不是標準的,AFAIK),你必須把它做成320 - (30 + 10)* 2 = 240pt。搜索欄將被放置在中間,並有足夠的空間。

這樣它既不會改變它的大小,也不會影響其他項目。

或者我建議你把它放在正確的位置,而不是在中間。

希望它有幫助。

相關問題