Я пытаюсь создать поведение прокрутки, подобное странице профиля Instagram, ie. вертикально прокручиваемый вид сверху (например, имя, аватар и т. д. c.), а ниже - сетка изображений, которые могут перемещаться влево и вправо, чтобы показать больше наборов изображений, а также возможность вертикальной прокрутки.
Для справки, я прочитал тонны очень похожих постов к этому, но я не нашел ни одного, которые касались проблемы прокрутки, которую я поднимаю ниже.
У меня есть такие настройки:
Примечание: ширина и высота зеленый скроллвид равен красному.
Эта настройка дает мне большую часть пути, но если вы проведете вверх и дадите go красного прокрутки, это не вызовет прокручивание зеленого прокрутки. И наоборот, как только зеленая прокрутка занимает весь экран, невозможно вернуться к красной прокрутке, потому что она тоже не сработала.
Я добился определенного успеха, включив / отключив зеленую прокрутку, когда красный scrollview прокручивается за высоту заголовка, но выглядит довольно дерзко.
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
}
}
Это решение движется в правильном направлении, или есть лучший способ добиться sh этого, которого мне не хватает?