我似乎无法让UISearchBar从导航栏中最左边到最右边的位置。在 - (无效)viewDidLoad方法中,我有以下代码:UISearchBar和UINavigationItem
UISearchBar *sb = [[UISearchBar alloc] initWithFrame:self.tableView.tableHeaderView.frame];
sb.delegate = self;
self.navigationItem.titleView = sb;
[sb sizeToFit];
[sb release];
当你构建和运行,它乍看上去就好了。然而,仔细观察,你可以看到左边有一个空白/空格。这对于事物的宏伟计划来说不是什么大问题,但是当我点击搜索栏开始搜索时,我将取消按钮设置为视图的动画。因为搜索栏略微位于右侧,动画是生涩和取消按钮脱落,像这样的结尾: link text
它看起来好像UINavigationItem就像是有三个单元格的表,其中有一个在我无法移除的第一个和最后一个填充上 - 也没有似乎有办法将它们“合并”在一起,然后将搜索栏放在那里。我知道这种看起来是可能的,因为AppStore搜索在导航栏中有一个搜索栏,它一直走到边缘。任何人都知道如何让搜索栏一直走到边缘,所以我的滑入取消按钮动画将正常工作?
我试过了UISearchDisplayController。但是,该“控制”将搜索栏放在表格标题中(不搜索时),而不是导航栏。然后,当您点击搜索栏时,它会动画并移动到导航栏,类似于“联系人”搜索。我不喜欢那样。我希望它看起来就像AppStore搜索一样,无论您正在搜索或不搜索,导航栏中的搜索栏REMAINS。这可能吗? – tbehunin 2009-10-23 19:22:24
从iPhone SDK获取“默认情况下,导航栏左侧显示后退按钮,中间显示标题,您可以通过指定自定义左侧视图,中央视图或右侧视图来更改此行为。”所以也许你可以尝试左视图和中心视图。是否有必要有一个真正的NavigationBar或仅仅是它的外观? – caahab 2009-10-23 20:27:19
我尝试了一个自定义的左视图和中心视图,但仍然看起来不像AppStore搜索。 我知道它看起来像一个导航栏,通过隐藏真正的导航栏,并将搜索放在表视图的标题。这工作完美。唯一的问题是,现在具有搜索栏的标题与屏幕一起滚动。我希望它像导航栏一样静止。任何其他想法?我只是想让搜索看起来像AppStore的搜索。我不敢相信这很难做到。 :( – tbehunin 2009-10-23 22:40:12