如何通过被动(RxSwift)调用替换UICollectionViewDelegateFlowLayout?

时间:2017-03-01 21:21:27

标签: swift rx-swift rx-cocoa

有没有办法替换方法

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

来自UICollectionViewDelegateFlowLayout协议的反应使用RxSwift?

1 个答案:

答案 0 :(得分:3)

返回值的协议方法是基于拉取的,因此与Rx的基于推送的哲学不兼容。不仅目前不可能用Observable替换那个特定的方法,它永远不可能。

您可以做的最好的方法是通过返回Variable中的值并使用Rx将数据推送到Variable来实现该方法。当集合视图需要相关项目的大小时,它将通过调用此方法来请求它。