将滚动子视图添加到UITableView(不是单元格)

时间:2014-05-19 06:55:37

标签: ios objective-c uitableview uiview

我正在以编程方式创建我的观点。我的UITableView子类中有一个UIViewController我想要添加一个滚动子视图,而不是一个单元格。我想在UITableView添加一些基于文本的子视图,它与表格一起滚动并从y = 0开始,因此用户只有在按下表格时才能看到它。也就是说,它应该位于我表格的第一部分之上。如果它有助于可视化,我打算做一些类似于“向下滚动以刷新”功能的东西,并希望向用户显示向下滚动导致刷新。是否有任何方法可以做到这一点,没有像使用另一个UITableViewCell来表示它或滥用UITableView委托方法在用户滚动时移动视图?

只需在我的[tableView addSubview:]中使用viewWillLoad,只会使其显示一瞬间,然后在加载表数据后消失。这对我来说似乎很奇怪,因为UITableViewUIScrollView的子类,它意味着在其中包含其他视图。使用[tableView.backgroundView addSubview]无效。

P.S。为什么不使用UIRefreshControl呢?我仍然未定,但倾向于不使用一个,因为我不喜欢当刷新通常非常快时,旋转轮“感觉”的速度有多慢。我一直在寻找其他选项,例如巧妙地闪烁背景,如果花费的时间比平时长,只显示一个轮子。

1 个答案:

答案 0 :(得分:0)

我只能使用表视图实现pull to refresh

使用滚动视图委托执行此操作,因为tableview是滚动视图的子类。

将视图控制器设置为tableview委托并实现

  • (void)scrollViewDidScroll:(UIScrollView *)scrollView

当scrollview内容偏移y值传递一个点时,向viewcontroller.view而不是tableview添加标签。向后滚动或释放时,删除视图。

您也可以将标签添加到表格视图并将框架原点设置为负y值,因此当您拉动标签时将移动到视图中(从未测试过这可能不起作用)