我想在Scroll上增加collectionView的大小。这就是所谓的视差效果。
我有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的library的帮助下完成了此操作。我只是使用Pod添加此库,然后按照库中给出的教程进行操作。
答案 0 :(得分:0)
经过很多努力,我实现了我在“问题”中提出的目标。
我是在ParallaxHeader
的{{3}}的帮助下完成的。
我只需使用library
添加此Pod
并按照库中给出的教程进行操作。