我在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
答案 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。
您可以查看参考文献,或询问您是否遇到问题。