滚动向上折叠视图(iOS)

时间:2016-06-02 18:44:29

标签: ios scroll tableview

我有一个ViewController,它有一个tableView,并且在表视图的顶部有两个视图。当用户向上滚动时,我需要折叠视图(在图像中以红色标出),然后向上移动另一个视图(橙色按钮)。我计划使用scrollViewDidScroll委托方法来检测表的偏移量,并使用它来处理折叠。

我该如何实施?

enter image description here enter image description here

//Custom delegate method, which returns offset of scrollViewDidScroll 
func didScrollScrollView(offset: CGFloat){
    print(offset)
    //I have the offset, which is -30 on load.  How do I implement collapsing of the view highlighted in red?

}

1 个答案:

答案 0 :(得分:1)

您需要访问视图的框架或更好的heightConstraint。 如果你有对heightConstrain的引用,你可以这样做:

var previousOffset: CGFloat = -30
func didScrollScrollView(offset: CGFloat){
    let diff = previousOffset - offset
    previousOffset = offset

    var newHeight = heightConstraint.constant + diff

    if newHeight < 0 {
        newHeight = 0
    } else if newHeight > 60 { // or whatever
        newHeight = 60
    }
    heightConstraint.constant = newHeight
}

如果您不使用Autolayout,则需要手动更新帧。

还在界面构建器或代码

中设置clipsSubviews = true(clippedToBounds)