UISearchBar 没有出现

Posted

技术标签:

【中文标题】UISearchBar 没有出现【英文标题】:UISearchBar Not appearing 【发布时间】:2010-03-31 20:25:16 【问题描述】:

我有视图控制器,在视图中我放了一个表格视图,并在表格的标题中添加了一个搜索栏...搜索栏没有显示,只是空的表格视图。

我需要做一些额外的事情吗?我很确定它与 UIViewController 的 view 插座有关,设置为 View...

谢谢

【问题讨论】:

【参考方案1】:

对于可能遇到此问题的其他任何人,我遇到了非常相似的情况,即添加了 UISearchBar 的 UITableViewController 没有显示。如果您发现自己处于这种情况,请仔细检查您是否真的在打电话:

initWithNibName:@"MyNibName" bundle:nil

初始化您的视图控制器,而不是常见的 Table View 初始化:

initWithStyle:UITableViewStylePlain

我愚蠢地将搜索栏添加到 Nib,然后使用样式 init 加载它(完全跳过 Nib 并从头开始加载表格视图)

【讨论】:

这有帮助,我将 nil 传递给 initWithNibName,这通常有效,但对于 UITableViewControllers 似乎没有。【参考方案2】:

尝试将 tableView 的 tableHeaderView 设置为 searchBar。

self.tableView.tableHeaderView = searchBar;

如果您使用的是 IB,请务必连接插座,以便参考。

【讨论】:

【参考方案3】:

试试这个,它对我有用:

- (void)viewDidAppear:(BOOL)animated 
     [super viewDidAppear:animated];
     self.tableView.tableHeaderView = _searchBar;
     [_searchBar becomeFirstResponder];


- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar 
     [_searchBar resignFirstResponder];
     self.tableView.tableHeaderView = _searchBar;


-(void) scrollViewDidScroll:(UIScrollView *)scrollView 

    searchBar.frame = CGRectMake(0,MAX(0,scrollView.contentOffset.y),320,44);

【讨论】:

【参考方案4】:

如果您将视图控制器设置为标签栏控制器的一部分,则除了 IB 中的“类”属性外,还要设置“NIB 名称”属性。我花了好几个小时才弄明白。

【讨论】:

【参考方案5】:

已修复使用带有控制器的 UISearchBar。

【讨论】:

以上是关于UISearchBar 没有出现的主要内容,如果未能解决你的问题,请参考以下文章

iOS Scope Bar 添加到 UISearchBar 下后不出现

UISearchBar 黑线/边框

UISearchBar resignFirstResponder无法正常工作

UISearchBar 搜索图标在 iOS7 中没有左对齐

如何为自定义的 UISearchBar 实现 scopeButtonTitles?

为啥 UISearchBar 在导航返回时会出现奇怪的闪烁?