【发布时间】:2017-04-29 04:57:03
【问题描述】:
我知道如何使用滚动视图委托方法检查方向。但不幸的是,我有一种情况,我必须在 UICollectionViewFlowLayout 中做同样的事情,但我无法使用滚动视图委托方法进行访问。 我尝试了检查(内部自定义布局)集合视图滚动方向的方法,但没有运气。在这种情况下请帮助我。
更多详情: 我想检查自定义布局内的条件。如果滚动方向是垂直的。我想知道它是顶部还是底部。
【问题讨论】:
-
我认为您需要访问
ScrollView的委托方法,您能否解释一下,为什么您不使用scrollViewdelegate?也许您可以创建自己的自定义委托并使用自定义流程布局实现并从 scrollView 委托方法调用其方法以了解流程布局中的当前滚动方向 -
如果我想使用scrollviewdelegate。我必须在 collectionviewlayout 中添加一个滚动视图。要添加它,每当我在布局内部执行诸如 collection.addSubView(scrollView) // 之类的操作时,它就会崩溃,我假设 colllectionview 尚未准备好,因为它位于布局内部。但我可能错了。
-
好的,但是您可以尝试这种方式,创建您的一个协议并使用您的自定义流程布局实现并从 scrollView 委托方法调用其方法以了解流程布局中的当前滚动方向
-
在你拥有collectionViewDatasource方法的ViewController中添加scrollView的方法,它将自动调用
-
protocol GetDirection { func scrollViewDirectionInLayout(scrollView: UIScrollView) } class CustomLayout: UICollectionViewLayout, GetDirection { func scrollViewDirectionInLayout(scrollView: UIScrollView) { //cal to find the direction } } class VC: UIViewController { func scrollViewDidScroll (scrollView: UIScrollView){ if collectionView = collectionView.collectionViewLayout as? CustomLayout { collectionView.collectionViewLayout.scrollViewDirectionInLayout(scrollView) } } } @NiravD 我想出了这个。怎么说?
标签: ios swift uiscrollview uicollectionview uicollectionviewlayout