RxReusable 0.3.0

RxReusable 0.3.0

DocsDocumented
TestsTested
LangLanguage SwiftSwift
License MIT
ReleasedLast Release Mar 2017
SwiftSwift Version 3.0
SPMSupports SPM

Maintained by Suyeol Jeon.


Downloads

Total139
Week39
Month92

Installs

Apps9
Apps WeekApps This Week 7
Test Targets3
powered by Segment

GitHub

Stars5
Watchers1
Forks1
Issues0
Contributors1
Pull Requests0

Code

Files9
SizeIntegration Size 44 kb
FrameworkCreates Framework
LOCLines of Code 255


 
Depends on:
RxSwift>= 3.0
RxCocoa>= 3.0
 

  • By
  • Suyeol Jeon

RxReusable

RxReusable provides some APIs for managing life cycle of reusable cells and views.

APIs

⚠️ In order to use these features properly, you should set delegate by using rx.setDelegate(_:).

UITableView

- tableView.delegate = self
+ tableView.rx.setDelegate(self)

UICollectionView

- collectionView.delegate = self
+ collectionView.rx.setDelegate(self)
  • var disposeBag: DisposeBag

    UITableViewCell and UICollectionView now has their own disposeBag as a property. The dispose bag is automatically disposed on prepareForReuse().

    observable
      .subscribe()
      .addDisposableTo(cell.disposeBag)
  • var isDisplaying: ControlEvent<Bool>

    The reactive wrapper for the cell or view is currently displaying or not. This will emit true when the tableView(_:willDisplay:forRowAt:) or collectionView(_:willDisplay:forItemAt:) is executed and false when the tableView(_:didEndDisplaying:forRowAt:) or collectionView(_:didEndDisplaying:forItemAt:) is executed.

    cell.rx.isDisplaying
      .subscribe(onNext: { isDisplaying in
        print("Cell became \(isDisplaying ? "visible" : "invisible")")
      })
  • func whileDisplaying(_:_:)

    This operator makes the observable emit items only when the cell or view is currently displaying or not.

    observable.whileDisplaying(cell, true)  // emit items when the cell is visible
    observable.whileDisplaying(cell, false) // emit items when the cell is not visible

Dependencies

Requirements

  • Swift 3
  • iOS 8+

Installation

  • Using CocoaPods:

    pod 'RxReusable', '~> 0.3'
  • Using Carthage:

    github "devxoul/RxReusable" ~> 0.3
    

License

RxReusable is under MIT license.