我正在构建一个具有社交内容流的应用程序,并试图了解 Instagram 如何在应用程序中进行流式传输的行为。因此,基本上,顶部标题会滚动到屏幕之外,但会在屏幕和内容之间弹跳。我可以使顶部标题滚动离开屏幕,并且可以使视图不反弹,但我想使用拉动刷新,最终会超出“人造”导航栏UIView
。我知道普通的导航栏会产生这个,但是这个滚动的导航栏是另一回事。
目前我有一个UITableview
有一个UIView
上面的UITableViewCell
一切都很好,除了反弹发生在UIView
。我想我需要得到UIView
上面的UITableView
但是在 UITableViewController 中,故事板不允许我放置UIView
上面的UITableView
.
有任何想法吗???
Thanks
好吧,我终于让这一切正常工作,所以我想我会为每个人发布答案。
基本上我设置了一个标准的导航栏,然后scrollViewDidScroll
我获取滚动的偏移量并根据该偏移量更改框架。这似乎工作得很好,请参阅下面的我的scrollViewDidScroll 方法。
- (void)scrollViewDidScroll:(UIScrollView *)sender {
//Initializing the views and the new frame sizes.
UINavigationBar *navbar = self.navigationController.navigationBar;
UIView *tableView = self.view;
CGRect navBarFrame = self.navigationController.navigationBar.frame;
CGRect tableFrame = self.view.frame;
//changing the origin.y based on the current scroll view.
//Adding +20 for the Status Bar since the offset is tied into that.
navBarFrame.origin.y = MIN(0, (sender.contentOffset.y * -1)) +20;
navbar.frame = navBarFrame;
tableFrame.origin.y = MIN(0,MAX(-44,(sender.contentOffset.y * -1)));
tableView.frame = tableFrame;
}
此外,您还需要将 TableView 提高 44px 以补偿滚动,否则您的框架将不够大。我只是在 viewWillAppear 中执行此操作并使框架更大。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)