我目前有一个由 aview controller组成的Navigation bar,然后是一个添加UIView了两个UIButtons作为子视图的 a。然后有一个UITableView从容器底部开始的底部UIView。
目前,当用户滚动时,UITableView它会在UIViewand后面UIButtons。我真正想要发生的是UIView和UIButtons与表格视图一起向上移动,但仅通过它们的高度值,在这种情况下为 58 像素。流程应该是这样的...
1) 表格滚动并UIView随之移动前 58 个像素。
2) 用户继续滚动表格,但UIView“大头针”本身在navigation bar.
3)当用户向下滚动表格时,UIView然后将其拾起并拖回视图。我相信新的 Facebook 应用程序在时间轴上做了类似的事情。
我不想将其设置UIView为TableHeaderView表格,因为我还有一个下拉刷新,它位于按钮上方,看起来很糟糕。我试过玩弄桌子contentOffset底层的属性,scrollview但碰上了砖墙。
任何关于从哪里开始的建议将不胜感激。
谢谢
编辑:我更进一步并使用此代码移动 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 在快速滚动时并没有完全回到原来的位置。