Как увеличить размер UICollectionView на Scroll - PullRequest
0 голосов
/ 29 апреля 2019

Я хочу увеличить размер collectionView на Scroll.Это называется эффектом параллакса.

У меня есть 3 класса с именем 1) класс PhotoGalleryViewController 'с раскадровкой.PhotoGalleryViewController содержит collectionView и ячейку с imageview.2) класс ListingDetailContentViewController 'без раскадровки 3) класс ListingDetailViewController' с раскадровкой.

ListingDetailViewController добавляется ListingDetailContentViewController как child.

contentViewController = ListingDetailContentViewController(hideComparable: comparableIsHidden)
        contentViewController.view.translatesAutoresizingMaskIntoConstraints = false
        contentViewController.listingDetailViewController = self
        addChild(contentViewController)
        view.addSubview(contentViewController.view)
        view.sendSubviewToBack(contentViewController.view)

ListingDetailContentViewControllerдобавляет photoGalleryViewController с использованием библиотеки AloeStackViewController.AloeStackViewController - это UIScrollView, поэтому я сделал его делегатом в ListingDetailContentViewController

class ListingDetailContentViewController: AloeStackViewController, PhotoGalleryViewControllerDelegate, UIScrollViewDelegate {
// MARK: - Private functions

private func setupView(ad: Ad) {
    // Display photos
    if let photos = ad.photos {
        photoGalleryViewController = UIStoryboard(name: "Listing", bundle: nil).instantiateViewController(withIdentifier: "PhotoGalleryViewController") as? PhotoGalleryViewController
        let photoView = photoGalleryViewController.view!
        stackView.addRow(photoView)
        stackView.setInset(forRow: photoView, inset: .zero)
        photoGalleryViewController.photos = photos
        photoGalleryViewController.ad = ad
        photoGalleryViewController.delegate = self
        actualFrame = photoGalleryViewController.collectionView.frame.height
    }
// Some other stuff
}
func scrollViewDidScroll(_ scrollView: UIScrollView) {
// The link i applied here is https://stackoverflow.com/questions/33481928/imageview-scaling-when-scrolling-down
        let offsetY = scrollView.contentOffset.y
        if offsetY < 0 {
            photoGalleryViewController.collectionView.frame.size.height +=  actualFrame - offsetY
            photoGalleryViewController.view.frame.size.height +=  actualFrame - offsetY
            self.loadViewIfNeeded()
        } else {
            photoGalleryViewController.collectionView.frame.size.height = actualFrame
            photoGalleryViewController.view.frame.size.height = actualFrame
            self.loadViewIfNeeded()
        }
    }
    }

Я попробовал это help , но у меня не получилось.Мое изображение вверху экрана.и другие вещи ниже.Когда пользователь прокручивает страницу вниз.Изображение должно быть увеличено.Пожалуйста, помогите мне решить эту проблему.

Обновление: Ответ: Я сделал это с помощью библиотеки под названием ParallaxHeader.Я просто добавляю эту библиотеку с помощью Pod и следую инструкциям, приведенным в библиотеке.

1 Ответ

0 голосов
/ 02 мая 2019

После большой борьбы я достиг своей цели, которая была задана в Вопросе.Я сделал это с помощью библиотеки под названием ParallaxHeader.Я просто добавляю library, используя Pod, и следую инструкциям, приведенным в библиотеке.

...