【问题标题】:How to set up my iOS storyboard to bounce like Instagram Stream?如何设置我的 iOS 故事板以像 Instagram Stream 一样弹跳?
【发布时间】:2012-07-12 11:34:58
【问题描述】:

我正在构建一个包含社交内容流的应用程序,并试图了解 instagram 如何在应用程序中进行流式传输。所以基本上是一个顶部标题,它从屏幕上滚动但在它和内容之间反弹。我可以使顶部标题滚动到屏幕之外,并且可以使视图不反弹,但我想使用 Pull 进行刷新,最终会出现在“人造”导航栏 UIView 上方。我知道一个普通的导航栏会产生这个,但这个滚动出来的就是另一回事了。

目前我有一个UITableview,在UITableViewCell 上方有一个UIView,除了弹跳发生在UIView 上方之外,一切正常。我想我需要将UIView 放在UITableView 上方,但是在UITableViewController 中,情节提要不允许我将UIView 放在UITableView 上方。

有什么想法吗???

谢谢

【问题讨论】:

  • 没人啊???我注意到新的 Facebook 5 应用在它的流页面上也有这种行为。在我将我的应用程序发布到野外之前,我真的很想弄清楚这个应用程序。

标签: ios storyboard instagram bounce


【解决方案1】:

好吧,我终于完成了这一切,所以我想我会为大家发布答案。

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

【讨论】:

  • 谢谢,这真的很有帮助,但产生了 1 个问题,滑动导航栏正在上升,但在导航栏的位置留下空白区域,并且表格正在从该空白区域滚动。如何解决这个问题,你能帮帮我吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-25
  • 1970-01-01
  • 1970-01-01
  • 2016-03-15
相关资源
最近更新 更多