首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UISearchBar和UINavigationItem

UISearchBar和UINavigationItem
EN

Stack Overflow用户
提问于 2009-10-24 00:54:04
回答 3查看 8.3K关注 0票数 2

我似乎无法让UISearchBar在导航栏中从最左侧定位到最右侧。在-(空)viewDidLoad方法中,我有以下代码:

代码语言:javascript
复制
UISearchBar *sb = [[UISearchBar alloc] initWithFrame:self.tableView.tableHeaderView.frame];
sb.delegate = self;
self.navigationItem.titleView = sb;
[sb sizeToFit];
[sb release];

当您构建并运行时,乍一看,它看起来很好。然而,仔细观察,你可以看出左边有一个空白处。这在大计划中不是什么大问题,但当我点击搜索栏开始搜索时,我将cancel按钮动画显示在视图中。由于搜索栏的位置稍微靠右,因此动画不稳定,cancel按钮从末端脱落,如下所示:link text

UINavigationItem看起来就像是一个有三个单元格的表格,在第一个和最后一个单元格上有一个我无法删除的填充--也没有一种方法可以将它们“合并”在一起,然后将搜索栏放在那里。我知道这种外观是可能的,因为AppStore搜索在导航栏中有一个搜索栏,它一直到边缘。谁知道如何让搜索栏一直到边缘,这样我的滑入取消按钮动画才能正常工作?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-03-17 01:06:30

我想我找到了答案--尽管我还没有测试来验证。在我上面提供的问题中,我有以下结构:

选项卡栏控制器->导航控制器->视图控制器

所讨论的搜索栏位于视图控制器中,而视图控制器位于导航控制器中,而导航控制器位于选项卡栏中。

我偶然看了斯坦福大学计算机科学193P (2009年春季)课程,在第13课结束时,答案可能已经提出。Alan Cannistraro表示,在线状态应用程序的结构应该具有这样的结构:

this structure http://img143.imageshack.us/img143/6/viewcontrollerstructure.jpg

其中底部视图控制器(与选项卡栏控制器相邻)是具有搜索栏控件的视图控制器。他警告说,如果不这样做,你会“遇到问题”。可能是我面临的问题?我相信是这样的。

票数 1
EN

Stack Overflow用户

发布于 2010-05-15 10:07:30

下面的代码只隐藏此UIViewController的navigationBar:

代码语言:javascript
复制
- (void)viewWillAppear:(BOOL)animated
{
    [self.navigationController setNavigationBarHidden:YES animated:animated];
}

- (void)viewWillDisappear:(BOOL)animated
{
    [self.navigationController setNavigationBarHidden:NO animated:animated];
}

因此,为了让UISearchBar显示在UINavigationBar的位置,在根视图控制器上只需在导航栏通常所在的位置放置搜索栏即可!

票数 2
EN

Stack Overflow用户

发布于 2009-10-24 01:08:37

也许苹果正在使用UISearchDisplayController来做这类事情。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1614687

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档