滚动 UITableView 标题?
Posted
技术标签:
【中文标题】滚动 UITableView 标题?【英文标题】:Scroll UITableView Header? 【发布时间】:2012-01-20 23:45:26 【问题描述】:我有一个自定义 UITableView 标题,我希望能够在表格顶部上方滚动。通常标题会粘在表格的顶部,难道不能以某种方式改变滚动能力,以便它可以超越它并与表格中的单元格一起滚动吗?
谢谢。
【问题讨论】:
我不确定你的意思。您希望标题是静态的并且在用户滚动表格时始终显示?或者您是否希望标题与表格一起滚动并在用户向下滚动时消失? 我希望标题随着表格滚动,所以如果用户向下滚动,它会从屏幕顶部消失。 【参考方案1】:如果这是您想要的行为,只需将header
作为第一个单元格的内容。可以自定义您想要的任何特定单元格。 UITableViewDelegate
documentaion 将在这方面为您提供帮助。
PS:使用tableView
header 的重点是让它粘在窗口的顶部。
编辑:如果你必须按照你想要的方式做,那么你可以试试这个:通过设置它的contentOffset
将你的tableView
向下移动一点。例如:myTableView.contentOffset= CGPointMake(0,heightOfYourView)
。现在在顶部添加yourView
【讨论】:
我明白这一点。我这样做了,但是因为我的表获取了核心数据记录,它导致了一大堆问题,我一直在努力避免这些问题。所以我一直在寻找一种替代解决方案,让这个自定义视图与表格一起使用,但实际上并不是作为单元格索引的端口。 好吧,我已经编辑了我的答案。现在就试试。另外,您应该在问题中提到这一点。 您的标题应位于与核心数据行不同的 tableview 部分。这将确保第一个核心数据行仍然是索引 0 Aqs,我已经尝试过了,但它的差异为零。抱歉,我之前的问题也没有提及我的情况。【参考方案2】:myTableView.tableViewHeader = myCustomTableHeaderView;
这会将myCustomTableHeaderView
设置为表格视图的标题,并且它会随着表格视图滚动。
【讨论】:
【参考方案3】:通过为索引0
的部分实现tableView:viewForHeaderInSection:
,您可以将标题作为第一个部分,当它滚动时应该消失。这样就不是整个UITableView的header了。
【讨论】:
【参考方案4】:如果整张表只有一个表头,就不能设置tableHeaderView
属性吗?
【讨论】:
我有一个部分,整个表都有一个标题。我已将视图添加到标题中,但通常标题会粘在表格的顶部,我希望它与单元格一起滚动。还是我不明白?【参考方案5】:您可能和我一样一直在搜索 tableHeaderView 属性。请参阅this SO question 了解更多信息。
【讨论】:
【参考方案6】:您应该使用 Grouped TableView 样式并在您的 ViewDidLoad 方法中添加以下代码行:
myTableView.backgroundColor=[UIColor clearColor];
myTableView.opaque=NO;
myTableView.backgroundView=nil;
同样在nib文件中,你应该清除分组表的背景颜色;
【讨论】:
【参考方案7】:- (void)scrollViewDidScroll:(UIScrollView *)scrollView
CGFloat sectionHeaderHeight = 40;//Change as per your table header hight
if (scrollView.contentOffset.y<=sectionHeaderHeight&&scrollView.contentOffset.y>=0)
scrollView.contentInset = UIEdgeInsetsMake(-scrollView.contentOffset.y, 0, 0, 0);
else if (scrollView.contentOffset.y>=sectionHeaderHeight)
scrollView.contentInset = UIEdgeInsetsMake(-sectionHeaderHeight, 0, 0, 0);
【讨论】:
以上是关于滚动 UITableView 标题?的主要内容,如果未能解决你的问题,请参考以下文章
使用 sectionForSectionIndexTitle 在 UITableView 中快速滚动
iOS:滚动 UITableView 时应用程序崩溃/内存被填充