Swift 在Tableview中滚动时向上推集合标题视图

Swift 在Tableview中滚动时向上推集合标题视图,swift,uitableview,uiscrollview,uicollectionview,Swift,Uitableview,Uiscrollview,Uicollectionview,我正在重建Instagram,目前正在处理我个人资料的功能 与instagram一样,我将标题视图固定在顶部,与instagram不同的是,我将表格视图固定在下方(而不是集合视图) 我希望当用户在tableview中向下滚动时,标题会向上推,tableview会占据整个屏幕 我已经尝试了我在堆栈溢出上发现的一切,但似乎没有达到我的目标 我尝试了这篇文章中的解决方案 使用代码 var oldContentOffset = CGPoint.zero let topConstraintRange

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

与instagram一样,我将标题视图固定在顶部,与instagram不同的是,我将表格视图固定在下方(而不是集合视图)

我希望当用户在tableview中向下滚动时,标题会向上推,tableview会占据整个屏幕

我已经尝试了我在堆栈溢出上发现的一切,但似乎没有达到我的目标

我尝试了这篇文章中的解决方案

使用代码

  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
}
var oldContentOffset=CGPoint.zero
让topConstraintRange=(CGFloat(64)…0&&collectionView.frame.size.height>topConstraintRange.lowerBound&&scrollView.contentOffset.y>0{
collectionView.frame.size.height-=增量
scrollView.contentOffset.y-=增量
}
//我们展开俯视图
如果增量<0&&collectionView.frame.size.height
我只在用户滚动tableview时实现了这一点,页眉会向上推,但tableview的大小保持不变


提前感谢!

您可以通过将tableview放入scrollview而不是使用tableview上方的标题来实现这一点。这不是一个好的做法,但很有效。嘿,感谢您的快速回答。我正在尝试最佳代码实践,我被告知我这样做的方式更可取。仍然不知道如何更改根据卷轴显示tableview。您是否尝试过使用scrollviewdidscroll?是的,请查看我的代码我实现了什么您可以通过将tableview放入scrollview而不是使用tableview上方的标题来实现这一点。这不是一个好的做法,但它很有效。嘿,感谢您的快速回答。我正在尝试使用最好的code练习,我被告知我的方式更可取。仍然不知道如何根据滚动来更改tableview。你是否尝试使用scrollviewdidscroll?是的,请查看我的代码我实现了什么