如何在iOS中的UITableView Like游戏中心中添加搜索栏



我已将搜索栏添加到UITableView(tblViewGallery)中。我添加了UITableView(tblViewGallery)的searchBar tableHeader。因此,添加的搜索栏运行良好。但现在我希望搜索栏显示为"游戏中心"搜索栏。我想在tblViewGallery第一次显示时隐藏搜索栏,当我们向下滚动tblViewLibrary时,搜索栏会显示,但它会像"游戏中心"搜索栏一样锁定UINavigationBar。我应该采取什么方法??我试过,

[tblViewGallery scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0] atScrollPosition:UITableViewScrollPositionTop animated:NO];

使用此功能,我可以在第一次显示tblViewGallery时隐藏搜索栏,当我向下滚动tableView时,搜索栏也会出现,但它不会锁定UI导航栏。对于锁定,我已经在UIScrollView -(void)scrollViewDidScroll:(UIScrollView *)scrollView 的委托方法中尝试了以下代码

CGRect rect = searchBar.frame;
rect.origin.y = MIN(0, scrollView.contentOffset.y);
searchBar.frame = rect;

如果我认为你要做的是正确的,你希望搜索栏在用户向下滚动时滚动出视图,并允许表头锁定在导航栏的顶部。

基于此,我将首先将您的UITableView样式设置为UITableViewStyleGrouped。然后覆盖viewForHeaderInSection方法,为每个组提供一个标头。标题将是一个带有一些文本的简单UIView。

然后,对于第一行,不加载普通单元格,而是加载一个包含UISearchBarUITableViewCell子类。然后在"viewForHeaderInSection"中,为第一组返回一个高度为零的UIView子类。

这会在UITabeView的顶部给你一个UISearchBar,它不会有标题,当用户向下滚动时,它会滚动出视图,当滚动时,其他标题会锁定到UINavigationBar,因为这是默认行为。

这有帮助吗?

最新更新