在xib中添加UISearchBar作为tableHeaderView不起作用

我说UISearchBar作为tableHeaderView为UITableView在厦门国际银行,通过只是删除UISearchBarUITableView 。 当表格超过6行时,它工作正常。 但是当行少于6行时, UITableView不会滚动。

同时,如果我使用以下语句在.m文件中以编程方式将UISearchBar作为tableHeaderView添加为UITableView,则一切正常。

tableViewTemp.tableHeaderView = searchBarFriends; 

看起来很奇怪,可能是什么问题?

请指教,谢谢。


这是我做的一个小窍门;)不要让你的SearchBar成为你的UITableView的子视图。 只需将它们的实例添加到您的nib文件中,并将它们作为IBOutlets连接到您的UITableViewController中即可。 然后你要做的就是将SearchBar设置为表格的标题视图,这样你就不必担心框架重叠并干扰触摸事件。 这是你如何做到的:

在TableView头文件中创建属性

@property ( nonatomic, retain ) IBOutlet UISearchBar *searchBar;

为你的表设置标题视图:

- (UIView *) tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
    return self.searchBar;  // The property you wired up in IB
}

设置标题或(UISearchBar)的高度

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
    return 44; // The height of the search bar
}

这就是你需要的。 现在如果你有一个分组的tableview或者一个有多个部分的表格,但是它是一个简单表格的干净解决方案,这可能不是最好的解决方案。 否则,你必须调整搜索框的框架和代码中的tableview,因为它们重叠,这就是为什么你有触摸问题。 希望这可以帮助!


如果你添加像下面的层次结构的搜索栏,它将起作用

在这里输入图像描述


我有几乎相同的问题(对我来说,它不会滚动任何行数,但它会一旦我删除搜索栏)。 修正了它在viewDidLoad添加:

self.tableView.alwaysBounceVertical = YES;
链接地址: http://www.djcxy.com/p/9565.html

上一篇: Adding UISearchBar as tableHeaderView in xib not works

下一篇: How to read title and id from Blu