我的应用程序有一个新的设计,它包括一个用于在tableView顶部显示图像的视差滚动.
当表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单元格内)
但我的问题是当我达到导航栏的大小时,我需要停止向上滚动图像. (我的导航栏背景是透明的)我不希望图像一直走到最前面.但它是一个位于我的tableView内部的单元格,所以它一直到顶部,直到它在滚动时消失.我需要帮助来阻止此图像滚动.如果我想达到这个效果,也许我的方法不正确.
这个效果是在Android上,它被称为“折叠工具栏布局”.
http://antonioleiva.com/collapsing-toolbar-layout/
有人知道如何为iOS执行“折叠工具栏布局”效果.
非常感谢您的帮助!
解决方法
尝试创建一个包含图像的UIView,并在tableView中设置tableHeaderView.然后在scrollViewDidScroll中:更新标题视图的高度和顶部约束.