ios - 表格 View 隐藏搜索栏直到滚动

标签 ios objective-c xcode uitableview uisearchbar

我设置了一个 TableView 和一个可用的搜索栏 - 不涉及 XIB 或 STORYBOARD。在搜索栏上方,我有标签显示表格 View 中的条目数和一些其他内容。那么现在我希望隐藏搜索栏+标签,直到用户向上滚动(就像在音乐应用程序中一样)。这是我的搜索栏的设置

self.searchBar = [[UISearchBar alloc]initWithFrame:CGRectMake(0, 0, 320, 44)];
self.searchBar.showsCancelButton = YES;
[self.view addSubview:self.searchBar];
self.searchBar.delegate = self;
self.tableView.contentInset = UIEdgeInsetsMake(self.searchBar.frame.size.height,0, 0, 0);
[self.tableView setTableHeaderView:self.searchBar];
[self.tableView setContentOffset:CGPointMake(0,88) animated:YES];
[self.zsearchDisplayController setActive:NO animated:YES];

这是我的标签:

 tableCountDisplay = [[UILabel alloc]initWithFrame:CGRectMake(5, -44, 155, 44)];

标签已经隐藏,直到用户滚动。问题是 - 我无法隐藏搜索栏。如果我这样做

 [self.tableView setContentOffset:CGPointMake(0,88) animated:YES];

然后搜索栏和标签被隐藏,但也是我的 TableView 的第一个元素...

如果我做 44 或 0(哪个都不重要)

[self.tableView setContentOffset:CGPointMake(0,44 or 0) animated:YES];

标签是隐藏的,其他一切都是可见的。技术上 0,44 应该是正确的偏移量,但由于某种原因它不起作用。 如果能得到一些帮助,我会非常高兴!

最佳答案

其中一个解决方案是将您的 searchBarlabel 作为 subview 添加到 UIView 中。然后将此 UIView 设置为 TableHeaderView。我的工作示例如下所示:

workingSample

滚动前的屏幕:

beforescroll

滚动后的画面:

afterscroll

关于ios - 表格 View 隐藏搜索栏直到滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24532590/

相关文章:

ios - 罕见的 CoreData 崩溃 "nilOutReservedCurrentEventSnapshot"

ios - 以编程方式创建的按钮缺少圆角

android - 是否可以清除 iOS 和 Android webkit 中的缓存?

ios - 链接 iOS 框架时无法在 Kotlin Multiplatform 中运行 "linkDebugFrameworkIos"

ios - 如何在图像 iOS 中动态突出显示单词

ios - 点击动画调整 View 大小

ios - 如何使用当前设置将 uitableview 自定义为不同的部分?

ios - Swift 类函数在 for-in 循环后返回空

objective-c - NSOperation - main 方法在主线程上运行?

xcode - 使XCTestCase断言失败,而测试无法继续运行,但又不停止其他测试