我目前有一个视图控制器,包括一个导航栏,后面是一个UIView,其中添加了两个UIButtons作为子视图。然后,在容器UIView底部开始的UITableView。
目前,当用户滚动UITableView时,它会在UIView和UIButtons后面。实际上,我想要的是UIView和UIButtons随着表视图一起移动,但只移动其高度的值,即58像素。流程如下:
1)表格滚动,UIView与其一起移动的前58个像素。
2)用户继续滚动表格,但UIView“固定”在导航栏下方,不可见。
3)当用户向下滚动表格时,UIView将被拾起并拖回视图中。我相信新的Facebook应用程序在时间轴上做了类似的事情。
我不想将UIView设置为表的TableHeaderView,因为我还有一个下拉刷新,然后它会出现在按钮上方,看起来很糟糕。我已经尝试玩弄表的底层滚动视图的contentOffset属性,但卡住了。
任何关于如何开始的建议都将不胜感激。
谢谢
编辑:我已经使用以下代码移动UIView的框架。
目前,当用户滚动UITableView时,它会在UIView和UIButtons后面。实际上,我想要的是UIView和UIButtons随着表视图一起移动,但只移动其高度的值,即58像素。流程如下:
1)表格滚动,UIView与其一起移动的前58个像素。
2)用户继续滚动表格,但UIView“固定”在导航栏下方,不可见。
3)当用户向下滚动表格时,UIView将被拾起并拖回视图中。我相信新的Facebook应用程序在时间轴上做了类似的事情。
我不想将UIView设置为表的TableHeaderView,因为我还有一个下拉刷新,然后它会出现在按钮上方,看起来很糟糕。我已经尝试玩弄表的底层滚动视图的contentOffset属性,但卡住了。
任何关于如何开始的建议都将不胜感激。
谢谢
编辑:我已经使用以下代码移动UIView的框架。
-(void) scrollViewDidScroll:(UIScrollView *)scrollView
{
NSLog (@"Content Offset: %f", self.tableView.contentOffset.y);
NSLog (@"Button Frame: %f", self.btnBackground.frame.origin.y);
if (self.tableView.contentOffset.y > 0)
{
CGRect newFrame = self.btnBackground.frame;
newFrame.origin.x = 0;
newFrame.origin.y = -self.tableView.contentOffset.y;
[self.btnBackground setFrame: newFrame];
}
}
现在的问题是,如果快速滚动表格视图,scrollViewDidScroll代理方法不会立即触发。结果就是当快速滚动时,UIView不能完全返回到其原始位置。