У меня есть контроллер просмотра профиля, и его родительский вид — это scrollView. Но внутри есть collectionView для рецептов.
Образец изображения: https://i.stack.imgur.com/ziRC7.png
Я хочу управлять прокруткой между scrollView и collectionView. Итак, в моей функции scrollViewDidScroll я написал этот код, но он не работает.
class userProfileView: UIViewController ,UICollectionViewDelegate, UICollectionViewDataSource, UIScrollViewDelegate {
@IBOutlet weak var recipesCollectionView: UICollectionView!
@IBOutlet weak var main_scrollview: UIScrollView!
func scrollViewDidScroll(_ scrollView: UIScrollView) {
if (recipesCollectionView.contentOffset.y <= 0 && main_scrollview.contentOffset.y < (main_scrollview.contentSize.height - main_scrollview.frame.size.height)) {
main_scrollview.isScrollEnabled = true
recipesCollectionView.isScrollEnabled = false
}
else if (main_scrollview.contentOffset.y >= (main_scrollview.contentSize.height - main_scrollview.frame.size.height)) {
main_scrollview.isScrollEnabled = false
recipesCollectionView.isScrollEnabled = true
}
}
}
В чем проблема?
Заранее спасибо!
@RicoCrescenzio, к сожалению, я не могу использовать ни одну коллекцию. Нет ли способа справиться с этим с помощью кода?





Вложенными представлениями прокрутки может быть сложно управлять. Вы должны написать логику для таких вещей, как скорость и откуда начинается прокрутка.
Вы можете использовать табличное представление с ячейкой, внутри которой есть представление коллекции. Это справится с проблемами, которые у вас возникают, поскольку логика прокрутки обрабатывается за вас.
Как правило, я бы не стал использовать настраиваемые представления прокрутки, если у вас нет очень веской причины. TableViews и CollectionViews достаточно мощны для большинства распространенных макетов и сценариев.
Работа с вложенной прокруткой всегда утомительна; вам следует рассмотреть возможность использования единого представления коллекции