UISearchBar 在 UTableViewHeader 中未正确显示

Posted

技术标签:

【中文标题】UISearchBar 在 UTableViewHeader 中未正确显示【英文标题】:UISearchBar not displaying correctly in UTableViewHeader 【发布时间】:2011-04-24 02:16:42 【问题描述】:

以编程方式添加了 uisearch bar 和 uisearchbardisplaycontoller(NO XIB),搜索栏排序显示在表格标题中,但不起作用。

如果 setActive:YES, setActive:NO 在显示控制器上看起来很好并且可以正常工作

任何想法为什么会发生这种情况?

提前致谢

searchBar = [[UISearchBar alloc] init];
[self setSearchBarDisplayController:[[UISearchDisplayController alloc] initWithSearchBar:searchBar contentsController:self]];
[[self searchBarDisplayController] setDelegate:self];
[[self searchBarDisplayController] setSearchResultsDataSource:self];

summaryTableView = [[[UITableView alloc] initWithFrame:CGRectMake(0.0, 0.0, 320.0, 416.0) style:UITableViewStylePlain] autorelease]; 
[summaryTableView setDataSource:self];
[summaryTableView setDelegate:self];
[summaryTableView setBackgroundColor:[UIColor clearColor]];
[summaryTableView setSeparatorStyle:UITableViewCellSeparatorStyleSingleLine];
[summaryTableView setRowHeight:[PayCell height]];

[summaryTableView setTableHeaderView:searchBar];

[self.view addSubview:summaryTableView];

[searchBarDisplayController setActive:YES];
[searchBarDisplayController setActive:NO];

【问题讨论】:

【参考方案1】:

会不会是你没有设置搜索显示控制器的searchResultsDelegate?

    self.searchDisplayController.searchResultsDelegate = self;

在Developer Site 上对此进行了引用。没有看到更多代码,很难说,但不设置它可能是你问题的根源。摘录如下:

searchResultsDelegate 的委托 搜索所在的表视图 显示结果。

@property(非原子,赋值) ID 搜索结果代表讨论 默认为零。

【讨论】:

谢谢,但是设置 searchResultsDelegate 并没有做任何事情。代码非常简单……一个带有 UITableViewDelegate、UITableViewDataSource、UISearchBarDelegate、UISearchDisplayDelegate 的视图,它创建了一个 searchBarDisplayController、searchbar 和一个 uitable。表视图的所有委托方法都已实现,并用单行加载表。搜索委托已实现但为空只返回默认值。在这一点上,我只是试图让搜索栏正确显示,必须在 searchBarDisplayController 上调用 setActive:YES setActive:NO。

以上是关于UISearchBar 在 UTableViewHeader 中未正确显示的主要内容,如果未能解决你的问题,请参考以下文章

单击 UISearchBar 的取消按钮后,如何使用 UISearchBar 刷新我的 UITableView?

UIWebView 和 UISearchBar 用于搜索

在 UISearchBar 中设置取消按钮的样式

UISearchbar 问题

UITableViewController 中的 UISearchBar?

在 UITableView 中激活时调整 UISearchBar