如何设置我的iOS故事板像Instagram流一样反弹?

时间:2012-07-12 11:34:58

标签: ios storyboard instagram bounce

我正在构建一个包含社交内容流的应用程序,并且我正试图了解Instagram在应用程序中的流程。所以基本上是一个顶部标题,滚动屏幕但在内容和内容之间反弹。我可以让顶部标题滚动离开屏幕,我可以让视图不反弹但我想使用Pull来刷新,最终会超过“faux”导航栏UIView。我知道一个普通的Navbar会产生这个但是这个滚动的是一个不同的故事。

目前我的UITableview UIViewUITableViewCellUIView,除了弹跳发生在UIView之上外,一切都很好。我想我需要在UITableView之上获得UIView但是在UITableViewController中,故事板不允许我将UITableView放在{{1}}之上。

任何想法???

由于

1 个答案:

答案 0 :(得分:5)

好吧,我终于把这一切都搞定了,所以我想我会为每个人发布答案。

基本上我设置了一个标准的导航栏然后在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中做了这个并使框架更大。