2011-09-04 68 views

回答

1

我做這種方式:

UISearchBar * navSearchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0, 0, 232, 44)]; 
navSearchBar.delegate = self; 
self.navigationItem.titleView = navSearchBar; 
[navSearchBar release]; 

我希望它能幫助!

2

嘗試將UISearchBar或UITextField放在UINavigationItem的titleView中,然後在導航欄的topItem中進行設置。

請參閱human interface guideline以確認它是允許的。

-1

navigationBar主要用於導航視圖層次結構。如果你所需要的只是頁面頂部的搜索欄,爲什麼不使用帶有類似於navigationBar背景的常規searchBar?

這樣你就可以對搜索欄的佈局有更多的控制,而且你不必處理navigationBar。

順便說一句,這可能是safari應用程序實際工作的方式 - 它不會將searchBar放置在navigationBar中。你可以看到這一點,因爲searchBar是滾動的,並沒有保持在最前面。

+0

我很確定它是一個導航欄 - 它有正確的風格提示和左/右控制在正確的地方。這只是碰巧在scrollview中的一個,而不是與導航控制器相關的一個。 – Simon

+1

我的意思是說,他們可能沒有使用常規的UINavgiationBar「left,right,title」屬性來實現它們的外觀。自定義導航條的最簡單方法是將其子類化並自行設計。我找到了一篇非常好的文章,描述瞭如何獲得你想要的外觀:http://www.icab.de/blog/2009/10/13/adding-any-kinds-of-ui-elements-into-a -uinavigationbar / – adamsiton