RxCollectionViewSectionedReloadDataSource.swift 956 B

1234567891011121314151617181920212223242526272829303132333435
  1. //
  2. // RxCollectionViewSectionedReloadDataSource.swift
  3. // RxExample
  4. //
  5. // Created by Krunoslav Zaher on 7/2/15.
  6. // Copyright © 2015 Krunoslav Zaher. All rights reserved.
  7. //
  8. #if os(iOS) || os(tvOS)
  9. import Foundation
  10. import UIKit
  11. #if !RX_NO_MODULE
  12. import RxSwift
  13. import RxCocoa
  14. #endif
  15. import Differentiator
  16. open class RxCollectionViewSectionedReloadDataSource<Section: SectionModelType>
  17. : CollectionViewSectionedDataSource<Section>
  18. , RxCollectionViewDataSourceType {
  19. public typealias Element = [Section]
  20. open func collectionView(_ collectionView: UICollectionView, observedEvent: Event<Element>) {
  21. Binder(self) { dataSource, element in
  22. #if DEBUG
  23. dataSource._dataSourceBound = true
  24. #endif
  25. dataSource.setSections(element)
  26. collectionView.reloadData()
  27. collectionView.collectionViewLayout.invalidateLayout()
  28. }.on(observedEvent)
  29. }
  30. }
  31. #endif