如何在Scroll

时间:2019-04-29 08:30:24

标签: swift uicollectionview uiimage uiscrollviewdelegate

我想在Scroll上增加collectionView的大小。这就是所谓的视差效果。

我有3个名为 1)使用情节提要的类PhotoGalleryViewController'。 PhotoGalleryViewController包含collectionView和一个包含imageview的单元格。 2)没有故事板的课程ListingDetailContentViewController' 3)带有故事板的课程ListingDetailViewController'。

ListingDetailViewControllerListingDetailContentViewController附加为child

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

ListingDetailContentViewController正在使用库photoGalleryViewController附加AloeStackViewControllerAloeStackViewControllerUIScrollView,所以这就是我在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的library的帮助下完成了此操作。我只是使用Pod添加此库,然后按照库中给出的教程进行操作。

1 个答案:

答案 0 :(得分:0)

经过很多努力,我实现了我在“问题”中提出的目标。 我是在ParallaxHeader的{​​{3}}的帮助下完成的。 我只需使用library添加此Pod并按照库中给出的教程进行操作。