UITableViewCellをバインドするときのTips

  • 8
    いいね
  • 1
    コメント
この記事は最終更新日から1年以上が経過しています。

UITableViewCellをバインドするときに、RACObserveのみだと、セルの再利用のときにエラーが発生しますが、 [UITableViewCell rac_prepareForReuseSignal]で、セルの再利用のタイミングを表すシグナルでtakeUntilしてあげると、セルの再利用のタイミングでdisposeされ、バインドを再設定できるようになります。

ViewController.m
#import <ReactiveCocoa/UITableViewCell+RACSignalSupport.h>


- (UITableViewCell *)tableView:(UITableView *)tableView
         cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];


    RAC(cell, textLabel) = [RACObserve(object, textProperty) takeUntil:[cell rac_prepareForReuseSignal]];   
}