Pau*_*ris 5 objective-c scrollview uitableview uiview ios
我目前有一个view controller由a组成Navigation bar,后跟一个UIView有两个UIButtons添加为subViews.然后有一个UITableView从容器底部开始的底层UIView.
此刻,当用户滚动UITableView它时,它会在UIView和之后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];
}
}
Run Code Online (Sandbox Code Playgroud)
现在的问题是,如果快速滚动表视图,scrollViewDidScroll委托方法不会被足够快地触发.结果是当快速滚动时,UIView并没有完全回到原来的位置.
问得很好的问题(y)好吧,对我来说,我首先会:使用一个UIScrollView包含你的 topView 和它下面的 tableView 的 main ,并且它的宽度与你的顶部相同UIView,UITableView并将其高度设置为 height(tableView) + height(顶视图)。第二:sinceUITableView是一个子类,UISCrollView你可以使用scrollViewDidScroll委托来知道tableview是向上还是向下滚动。在这种情况下,您将有两种情况:
1)tableview向上滚动=>您将主scrollView的内容偏移量设置为
[scrollView setContentOffset:CGPointMake(0, 58) animated:YES];
Run Code Online (Sandbox Code Playgroud)
2)当表格视图向下滚动时,您可以再次重置内容偏移量
[scrollView setContentOffset:CGPointMake(0, 0) animated:YES];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4690 次 |
| 最近记录: |