IOS UI-- KVO笔记

KVO 是通过观察对象中的某个属性的变化, 从而触发某个方法
控制器作为观察者(c), 观察数据模型(m)的变化, 从而可以修改视图(v)的变化

观察model中的属性, 发生变化后, 让图片显示到cell上
思路:
1.先明确观察着和被观察者(和cell对应的model中的属性, 并且是一个可以改变的, 图片从无到有)
2.如何让图片从无到有
肯定是请求的, 用封装好的ImageDownloader去请求
3.可以给model写一个方法, 去请求图片(方法中使用ImageDownloader对象)
4.这个model请求方法怎么写?可以让图片加载出来
5.从无到有之后, 触发观察者方法
6.方法中把model中的图片放到对应的cell上
7.移除观察者

self.yongFei = [[SiCong alloc] init];
_yongFei.hobby = @“年少不同”;
// 观察一下, 永飞的兴趣属性
// addObserver 添加一个观察者
// forKeyPath 被观察者的某个属性
//  options  观察的变化(新的, 老的)
// context 可以是携带的参数, 可以是空的
// 观察者, self代表控制器(c)
// 被观察者, @“hobby"代表model对象(m)的属性
// 添加两个枚举值, 中间加个|
[self.yongFei addObserver:self forKeyPath:@“hobby” options:NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld context:@“呵呵”];

通过button改变yongFei属性

// 如果观察的某个属性, 发生了变化, 就触发该方法
- (void)observeValueForKeyPath:(NSString)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
keyPath  被观察的属性, object 被观察属性的对象  change[@“new”] 更改的新值和旧值组成的字典  context 携带的参数
// 取消观察者
[object removeObserver:self forKeyPath:@“hobby”];
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值