我正在尝试创建类似于Instagram个人资料页面的滚动行为,即顶部(例如,名称,头像等)的垂直滚动视图,以及下方的垂直滚动视图,可以左右左右移动以显示更多图像集,同时还可以垂直滚动。
为了记录,我已经阅读了很多与此类似的帖子,但是我没有找到任何解决下面提到的滚动问题的方法。
这是我到目前为止的设置:
注意:绿色滚动视图的宽度和高度等于红色滚动视图的宽度和高度。
此设置可以帮助我解决大部分问题,但是如果向上滑动并放开红色滚动视图,则不会触发绿色滚动视图滚动。相反,一旦绿色滚动视图占据了整个屏幕,就无法返回红色滚动视图,因为它也未触发。
我通过启用/禁用绿色滚动视图取得了一些成功,当红色滚动视图滚动超过标题的高度时,却显得很简陋。
func scrollViewWillBeginDragging(_ scrollView: UIScrollView) {
let translation = scrollView.panGestureRecognizer.translation(in: scrollView.superview)
var isScrollingDown = translation.y > 0
let offset = scrollView.contentOffset.y
if isScrollingDown, offset <= scrollHeight { //scrollHeight is equal to the height of the header cell
greenScrollView.isScrollEnabled = false
}
else if !isScrollingDown, offset >= scrollHeight {
greenScrollView.isScrollEnabled = true
}
}
这个解决方案是朝着正确的方向发展,还是有一种更好的方法来实现我所缺少的目标?
[基本上,对于将来的用户,主要要点是使用看起来像PageController的UIScrollBar。每个“页面”只是一个视图控制器,您可以在增加内容大小的宽度时将其添加到UIScrollBar中。
我已经实现了一些功能(例如显示两个图像和添加的gif中的一行的集合视图),但是由于我没有时间将其同时添加到我的图像中,因此这些功能将在星期六添加应用和仓库。