在Tableview中滚动时按下Collection Header视图

时间:2017-10-14 19:28:26

标签: swift uitableview uiscrollview uicollectionview

我正在重建Instagram,目前正在处理我个人资料的功能。

在Instagram中,我有一个固定在顶部的标题视图,与Instagram不同,下面是一个tableview(而不是集合View)。

我希望当用户在tableview中向下滚动时,标题会被推高并且tableview会占用整个屏幕。

我已经尝试过我在堆栈溢出时发现的所有东西,但似乎没有实现我的目标。

我试过这篇文章中的解决方案 Move a view when scrolling in UITableView

使用代码

  var oldContentOffset = CGPoint.zero
let topConstraintRange = (CGFloat(64)..<CGFloat(250))

func scrollViewDidScroll(_ scrollView: UIScrollView) {

    let delta =  scrollView.contentOffset.y - oldContentOffset.y

    //we compress the top view
    if delta > 0 && collectionView.frame.size.height > topConstraintRange.lowerBound && scrollView.contentOffset.y > 0 {
        collectionView.frame.size.height -= delta
        scrollView.contentOffset.y -= delta
    }

    //we expand the top view
    if delta < 0 && collectionView.frame.size.height < topConstraintRange.upperBound && scrollView.contentOffset.y < 0{
        collectionView.frame.size.height -= delta
        scrollView.contentOffset.y -= delta
    }
    oldContentOffset = scrollView.contentOffset
}

我只有在用户滚动tableview时才会实现这一点,标题会被推高,但是tableview仍然保持相同的大小。

This is before scrolling

The tableview remains the same size, the header gets pushed up.

提前感谢!

0 个答案:

没有答案