UICollectionView没有调用scrollViewDidScroll方法 - Swift

6

我已经导入了UICollectionViewDelegate、UICollectionViewDataSource和UIScrollViewDelegate。

我将我的集合视图的代理和数据源设置为self。

但是scrollViewDidScroll没有被调用,如果滚动视图是水平的,是否会有所不同?

如果集合视图使用其中的滚动视图,为什么scrollViewDidScroll没有被调用?

3个回答

4

我是从Swift 2转换到Swift 3,以下是解决方法:

Swift 2:

public func scrollViewDidScroll(scrollView: UIScrollView)

转换至Swift 3:

public func scrollViewDidScroll(_ scrollView: UIScrollView)

基本上,下划线"_"解决了问题。令人烦恼的是,Swift编译器并没有抱怨它!!!

至于继承,UICollectionViewDelegate应该可以解决问题。


1
我必须添加信息,表明我的控制器符合UIScrollViewDelegate协议,以使其正常工作。

-1

我也遇到了这个问题。一开始我在storyboard里将代理设置为self,但此时scrollViewDidScroll没有被调用(但像collectionView willDisplayCell之类的函数则按预期工作)。经过一些尝试,我发现以编程方式设置代理可以解决问题。


这里也有同样的问题。我在IB中设置了delegate和dataSource,但scrollViewDidScroll()不会触发。 即使我在代码中设置它们,问题仍然存在。 - Florin Odagiu

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接