我目前有一个由 aview controller
组成的Navigation bar
,然后是一个添加UIView
了两个UIButtons
作为子视图的 a。然后有一个UITableView
从容器底部开始的底部UIView
。
目前,当用户滚动时,UITableView
它会在UIView
and后面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 在快速滚动时并没有完全回到原来的位置。