我有一个abc控制器,包括UIPageViewController和这个控制器,包括3个不同的控制器,连接到标签。
在连接到UIPageViewController的第一个控制器中,有一个CollectionView,它被委托给自己的控制器,我使用UICollectionViewDelegateFlowLayout来塑造单元格。
但是当我将ABCController中的delegate controller更改为它自己时(使同步滚动与主滚动)
函数collectionView(_collectionView:UICollectionView,布局CollectionViewLayout:UICollectionViewLayout,sizeForItemAt IndexPath:IndexPath)->; CGSize
停止工作,因为我将collectionview委托给了另一个控制器。
有什么方法可以将滚动事件委托给另一个控制器吗?
我知道这可能有点复杂,但我希望能找到一种方法。
您可以通过创建一个包装来实现:
class CollectionViewController: UICollectionViewDelegate, UICollectionViewDatasource {
var scrollDelegate: UIScrollViewDelegate?
// delegate scroll events
func scrollViewDidScroll(_ scrollView: UIScrollView) {
scrollDelegate?.scrollViewDidScroll(scrollView)
}
// other events
}