Многократная прокрутка UIColectionView внутри UIScrollView

#swift #xcode #scroll #uiscrollview #uicollectionview

#swift #xcode #прокрутка #uiscrollview #uicollectionview

Вопрос:

У меня есть контроллер просмотра профиля, и его родительский вид является 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 amp;amp; 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


    }

 }

}
  

В чем проблема?

Заранее спасибо!

Комментарии:

1. Обработка вложенной прокрутки всегда сопряжена с трудностями; вам следует рассмотреть возможность использования единого представления коллекции

2. @RicoCrescenzio к сожалению, я не могу использовать одну коллекцию. Есть ли какой-нибудь способ обработать это с помощью кода?

Ответ №1:

Вложенными прокручиваемыми представлениями может быть сложно управлять. Вы должны написать логику для таких вещей, как скорость, и откуда начиналась прокрутка.

Вы могли бы использовать tableview с ячейкой, внутри которой есть представление коллекции.Это позволит устранить проблемы, с которыми вы сталкиваетесь, поскольку логика прокрутки обрабатывается за вас.

Как правило, я бы не стал использовать пользовательские виды прокрутки, если у вас нет очень веской причины. tableViews и CollectionViews достаточно эффективны для большинства распространенных макетов и сценариев.