iOS利用KVO实现cell倒计时、实时改变数值需求

前排附上Demo : https://github.com/3KK3/iOS-KVO-
做开发经常碰到在列表里面实现倒计时,或者实时改变cell中某一个数值。这种需求以前都是一直调用reloadData来实时刷新。后来发现可以使用苹果的KVO来实现,记录如下:

1.创建数据Model来完成数据传递:CellModel

2.在Cell传递数据model的时候 ,监听model需要改变的属性

- (void)seCelltModel:(CellModel *)model {
    
    _model = model;
    //   "price"为CellModel中需要实时改变的属性
    [model addObserver: self forKeyPath: @"price" options: NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld context: nil];
}

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {
    
    if ([keyPath isEqualToString: @"price"]) {

       //   实时改变cell中相应的值
        _priceLabel.text = _model.price;
    }
}

iOS利用KVO实现cell倒计时、实时改变数值需求_第1张图片
屏幕快照 2017-09-01 下午4.22.40.png

你可能感兴趣的:(iOS利用KVO实现cell倒计时、实时改变数值需求)