我有一项要求,我需要具备以下功能 -
1)我有一个自定义分段控件。为了实现对分段控件的分页,我使用了水平滚动视图。每个页面都有自己的垂直滚动视图。
要求
1)当用户在相应页面中向上滚动时图像应该隐藏,并且当用户在相应页面中向下滚动时应该显示图像,但是当隐藏图像时保持自定义片段始终位于屏幕顶部,而不管单个页面选择如何 -
到目前为止我尝试了什么 -
第一种方法
我尝试将图像作为表格视图的标题。 用一个单元格和一个单元创建了一个单独的部分。将节标题作为自定义细分。在单元格中,我放置了水平滚动视图,其中单元格的高度被调整为覆盖超视图中剩余的所有部分,但是当我滚动单个页面的垂直滚动时它没有与表视图同步
第二种方法
我尝试将片段设置为距离顶部和顶部的固定距离。我增加了&减少了scrollViewDidScroll()内部的约束。但它也不起作用,因为当用户快速滚动时,约束值的更改没有正确遵循。
那么还有其他方法可以达到同样目的吗? 请建议,因为我无法弄清楚该做什么?
答案 0 :(得分:2)
您可以在tableView
内添加UIImage
和scrollView
。 tableView
必须具有相同的高度和宽度。宽度超过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
的位置处理标题中的多种动画类型。