UITableViewController使用冻结标头进行刷新

时间:2012-11-24 18:28:08

标签: iphone ios objective-c uitableview pull-to-refresh

我有一个看起来像这样的模型:

mockup1

这是一个可以滚动的大表控制器。

当章节标题点击页面顶部时,它会沿着顶部冻结,如下所示:

mockup2

哪个工作正常。但是,当你回到顶部并进行刷新时,我希望它能够做到这一点:

enter image description here

因此,顶部表格标题单元格和节标题之间出现了“提取刷新”对话框(不再冻结)。

这可能吗?我在搜索中没有找到这样的实现。

1 个答案:

答案 0 :(得分:1)

您可以执行以下操作来实现此目的,

  1. 添加UIScrollView作为UIViewController's视图的子视图。
  2. 添加UIViewUITableView作为此滚动视图的子视图
  3. 滚动视图中的
  4. UIView表示表头单元格。
  5. 节标题可以是UITableview的标题,表格内容代表UITableView's单元格。
  6. UIRefreshControl添加为UITableView的子视图并设置其目标方法。
  7. - (void)scrollViewDidScroll:(UIScrollView *)scrollViewUITableview实施scrollview委托UIScrollview
  8. 当您滚动表格视图时,只要表格视图标题向上移动直到标题到达顶部,就移动父滚动视图。在scrollview委托中添加if条件以检查此情况。
  9. 当向下移动表格视图时,移动父滚动视图,直到UIView停止滚动UIScrollviewUIRefreshControl表格单元格标题可见,并允许表格视图滚动。这将启用- (void)scrollViewDidScroll:(UIScrollView *)scrollView
  10. 关键在于contentOffset方法以及如何实现滚动。您可以添加{{1}}检查以确定滚动了多少tableview和scrollview。为了限制滚动,您可以在此委托方法中手动将此值设置为特定值,然后不会滚动。