-1

我有一个包含UIPageViewController的ABCController和包含 3 个连接到选项卡的不同控制器的控制器。

在连接到UIPageViewController的第一个控制器中,有一个CollectionView委托给它自己的控制器,我正在使用UICollectionViewDelegateFlowLayout来塑造单元格。

但是当我将ABCController中的委托控制器更改为它自己时(使用 mainScroll 制作 syncScroll)

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize

停止工作,因为我将 collectionview 委托给另一个控制器。

有没有办法将滚动事件委托给另一个控制器?

我知道这可能有点复杂,但我希望找到一种方法。

4

1 回答 1

1

你可以通过创建一个包装器来做到这一点:

class CollectionViewController: UICollectionViewDelegate, UICollectionViewDatasource {
    var scrollDelegate: UIScrollViewDelegate?

    // delegate scroll events
    func scrollViewDidScroll(_ scrollView: UIScrollView) {
       scrollDelegate?.scrollViewDidScroll(scrollView)
    }
    
    // other events
}
于 2020-06-25T14:12:33.350 回答