UISearchBar被tableViewHeader所掩盖

时间:2010-01-29 05:53:13

标签: uitableview iphone-sdk-3.0 uisearchbar

我在UITableView.tableHeaderView中放置了一个UISearchBar。但是它通过将可查看的顶部放在第一个节头上来覆盖searchBar。当我将tableView向下拖动时,我只能看到searchBar。它被覆盖了一半,然后无法选择,因为释放tableView滚动将橡皮筋带回到视野之外。请帮忙。

以下内容放在我的UITableViewController viewDidLoad方法中:

UISearchBar *theSearchBar = [[UISearchBar alloc] init];
theSearchBar.delegate = self;
self.searchBar = theSearchBar;
[theSearchBar release];

self.tableView.tableHeaderView = self.searchBar;

结果是以下屏幕截图:http://imagebin.ca/view/6qNiwHR.html

2 个答案:

答案 0 :(得分:5)

事实证明这是一个尺寸问题。我发现a tutorial将以下代码放入设置中:

[theSearchBar sizeToFit];

让一切看起来都很完美。

由于UISearchDisplayController使用已经建立的UISearchBar,因此无法解决问题。

答案 1 :(得分:0)

我认为tableHeaderView不是放置搜索栏的最佳位置。 我通常使用UISearchDisplayController:

searchController = [[UISearchDisplayController alloc]
                     initWithSearchBar:theSearchBar contentsController:self];
searchController.delegate = self;
searchController.searchResultsDataSource = self;
searchController.searchResultsDelegate = self;

这非常直截了当,并提供了一些搜索功能(你必须在委托/数据源中实现它们,在本例中是你的控制器)。

我通常是从笔尖做的,但我认为你只需将它分配给你的viewcontroller:

self.searchDisplayController=searchController;

如果它没有显示视图,你应该直接将视图添加到tableView。

您可以查看参考文献,或询问您是否遇到问题。