使用UITableView滚动UIView,但将其固定在视图顶部

时间:2013-05-06 09:59:54

标签: ios objective-c uitableview uiview scrollview

我目前有view controllerNavigation bar组成,后跟UIView,其中有两个UIButtons作为子视图添加。然后在容器UITableView的底部开始有一个UIView

目前,当用户滚动UITableView时,它会落后于UIViewUIButtons。我实际想要发生的是UIViewUIButtons向上移动表格视图,但只有它们的高度值,在这种情况下是58像素。流程就像这样......

1)表格滚动,UIView随之移动前58个像素。

2)用户继续滚动表格,但UIView“引脚”本身只是在navigation bar下的视图之外。

3)当用户向下滚动桌子时,然后拾取UIView并将其拖回视图。我相信新的Facebook应用在时间线上做了类似的事情。

我不想将UIView设置为表格的TableHeaderView,因为我还有一个拉动刷新,然后位于按钮上方并且看起来很糟糕。我已经尝试过使用表格底层contentOffset的{​​{1}}属性,但已经撞到了一堵砖墙。

任何有关从哪里开始的建议都将受到赞赏。

由于

编辑:我进一步使用此代码移动UIView的框架。

scrollview

现在的问题是,如果表视图快速滚动,则scrollViewDidScroll委托方法不会被足够快地触发。结果是当快速滚动时,UIView并没有完全回到原来的位置。

2 个答案:

答案 0 :(得分:0)

问题问答(y) 好吧,对我来说,我首先:使用一个主UIScrollView,其中包含你的topView和tableView,它与你的顶部UIViewUITableView具有相同的宽度并设置它的高度高度(tableView)+高度(topView)。 第二:由于UITableViewUISCrollView的子类,因此您可以使用scrollViewDidScroll委托来了解表格视图是向上还是向下滚动。 在这个cas你将有两个案例:

1)tableview向上滚动=>您将主scrollView的内容偏移设置为

[scrollView setContentOffset:CGPointMake(0, 58) animated:YES];

2)当向下滚动表格视图时,您可以再次重置内容偏移

 [scrollView setContentOffset:CGPointMake(0, 0) animated:YES];

答案 1 :(得分:0)

滚动内容偏移是个好主意。此外,如果tableview只有一个部分,则一种方法是执行表示顶级窗口小部件的自定义标题视图。如果有多个部分,则创建一个额外的空部分,该部分将返回您的自定义标题。

您可以参考此堆栈溢出帖子。 Customize UITableview Header Section