我目前有view controller
由Navigation bar
组成,后跟UIView
,其中有两个UIButtons
作为子视图添加。然后在容器UITableView
的底部开始有一个UIView
。
目前,当用户滚动UITableView
时,它会落后于UIView
和UIButtons
。我实际想要发生的是UIView
和UIButtons
向上移动表格视图,但只有它们的高度值,在这种情况下是58像素。流程就像这样......
1)表格滚动,UIView
随之移动前58个像素。
2)用户继续滚动表格,但UIView
“引脚”本身只是在navigation bar
下的视图之外。
3)当用户向下滚动桌子时,然后拾取UIView
并将其拖回视图。我相信新的Facebook应用在时间线上做了类似的事情。
我不想将UIView
设置为表格的TableHeaderView
,因为我还有一个拉动刷新,然后位于按钮上方并且看起来很糟糕。我已经尝试过使用表格底层contentOffset
的{{1}}属性,但已经撞到了一堵砖墙。
任何有关从哪里开始的建议都将受到赞赏。
由于
编辑:我进一步使用此代码移动UIView的框架。scrollview
现在的问题是,如果表视图快速滚动,则scrollViewDidScroll委托方法不会被足够快地触发。结果是当快速滚动时,UIView并没有完全回到原来的位置。
答案 0 :(得分:0)
问题问答(y)
好吧,对我来说,我首先:使用一个主UIScrollView
,其中包含你的topView和tableView,它与你的顶部UIView
和UITableView
具有相同的宽度并设置它的高度高度(tableView)+高度(topView)。
第二:由于UITableView
是UISCrollView
的子类,因此您可以使用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