2011-09-04 69 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