RxReusable 0.3.1

RxReusable 0.3.1

TestsTested
LangLanguage SwiftSwift
License MIT
ReleasedLast Release Apr 2017
SwiftSwift Version 3.1
SPMSupports SPM

Maintained by Suyeol Jeon.


Downloads

Total1,774
Week103
Month316

Installs

Apps66
Apps WeekApps This Week 7
Test Targets17
Test WeekTests This week 3
powered by Segment

GitHub

Stars8
Watchers1
Forks1
Issues2
Contributors1
Pull Requests1

Code

Files9
LOCLines of Code 260


 
Depends on:
RxSwift>= 3.0
RxCocoa>= 3.0
 

  • By
  • Suyeol Jeon

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.