ios的折叠工具栏布局

Posted

技术标签:

【中文标题】ios的折叠工具栏布局【英文标题】:Collapsing toolbar layout for ios 【发布时间】:2015-09-14 11:24:42 【问题描述】:

我的应用程序有一个新设计,它包括用于在 tableView 顶部显示图像的视差滚动。

我知道如何通过将图像放入单元格来添加视差效果,就像这样 -

当 table scrollViewDidScroll 被调用时:

- (void)scrollViewDidScroll:(UIScrollView *)scrollView 

    CGPoint currentOffset = scrollView.contentOffset;

        if (currentOffset.y > _lastContentOffset.y) 
            //Scroll Up

            _containerView.clipsToBounds = true;
            _bottomSpaceConstraint.constant = -scrollView.contentOffset.y / 2;
            _topSpaceConstraint.constant = scrollView.contentOffset.y / 2;

         else 
           //Scroll Down

            _topSpaceConstraint.constant = scrollView.contentOffset.y;
            _containerView.clipsToBounds = false;

         

        _lastContentOffset = currentOffset;


(_bottomSpaceConstraint 和 _topSpaceConstraint 是第 0 部分 tableView 单元格内的 Image 顶部和底部约束)

但我的问题是,当图像达到导航栏的大小时,我需要停止向上滚动。 (我的导航栏背景是透明的)我不希望图像一直到顶部。但它是我的 tableView 内的一个单元格,所以它一直到顶部,直到它在滚动时消失。我需要帮助以阻止此图像滚动。如果我想达到这个效果,可能我的做法是不正确的。

这种效果在 android 上,它被称为“折叠工具栏布局”。 http://antonioleiva.com/collapsing-toolbar-layout/

有人知道如何为 ios 制作这种“折叠工具栏布局”效果吗?

非常感谢您的帮助!

【问题讨论】:

iOS 7 parallax effect in my view controller的可能重复 不,我想做这样的效果 - antonioleiva.com/collapsing-toolbar-layout github.com/bryankeller/BLKFlexibleHeightBar 【参考方案1】:

尝试创建一个包含图像的 UIView,并在 tableView 中设置 tableHeaderView。然后在scrollViewDidScroll中:更新header view的高度和顶部约束。

【讨论】:

以上是关于ios的折叠工具栏布局的主要内容,如果未能解决你的问题,请参考以下文章

像谷歌游戏商店一样折叠工具栏布局

ViewHolder 中的嵌套 RecyclerView 破坏了折叠工具栏布局

折叠工具栏布局,工具栏中带有徽标、标题、副标题

使用 AppBarLayout.Behavior.DragCallback 控制折叠工具栏布局的滚动

在折叠工具栏布局上将 RecyclerView 锚定得更高[重复]

使用可折叠工具栏和页面适配器时不正确调用请求布局