嵌套滚动视图与表视图或此要求的其他内容

时间:2016-03-01 08:05:26

标签: ios swift uitableview uiscrollview

我有一项要求,我需要具备以下功能 -

enter image description here

1)我有一个自定义分段控件。为了实现对分段控件的分页,我使用了水平滚动视图。每个页面都有自己的垂直滚动视图。

要求

1)当用户在相应页面中向上滚动时图像应该隐藏,并且当用户在相应页面中向下滚动时应该显示图像,但是当隐藏图像时保持自定义片段始终位于屏幕顶部,而不管单个页面选择如何 -

enter image description here

到目前为止我尝试了什么 -

第一种方法

我尝试将图像作为表格视图的标题。 用一个单元格和一个单元创建了一个单独的部分。将节标题作为自定义细分。在单元格中,我放置了水平滚动视图,其中单元格的高度被调整为覆盖超视图中剩余的所有部分,但是当我滚动单个页面的垂直滚动时它没有与表视图同步

第二种方法

我尝试将片段设置为距离顶部和顶部的固定距离。我增加了&减少了scrollViewDidScroll()内部的约束。但它也不起作用,因为当用户快速滚动时,约束值的更改没有正确遵循。

那么还有其他方法可以达到同样目的吗? 请建议,因为我无法弄清楚该做什么?

1 个答案:

答案 0 :(得分:2)

您可以在tableView内添加UIImagescrollViewtableView必须具有相同的高度和宽度。宽度超过scrollView。然后禁用scrollView

的平移手势
self.scrollView.panGesture.active = false

然后你必须在scrollViewDidScroll' of your tableView`的委托中实现自定义滚动:

func scrollViewDidScroll(scrollView: UIScrollView) {
    if self.scrollView.contentOffset.y <= 100 {
        self.scrollView.contentOffset.y += scrollView.contentOffset.y
        self.tableView.contentOffset.y = 0
    } else {
        // let the tableView scroll normally
    }
}

或者,您可以试试https://github.com/bryankeller/BLKFlexibleHeightBar;)

它是一个很棒的组件,可以根据scrollView的位置处理标题中的多种动画类型。