我有一个Profile View Controller,它的父视图是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
}
}
}
出什么问题了?
谢谢!
答案 0 :(得分:0)
嵌套的滚动视图可能很难管理。您必须为速度以及滚动从何而来编写逻辑。
您可以使用带单元格的表格视图,该单元格内部具有集合视图。这将解决您在处理滚动逻辑时遇到的问题。
通常,除非您有充分的理由,否则我不会使用自定义滚动视图。 TableViews和CollectionViews对于大多数常见的布局和方案都足够强大。