美文网首页
MVC、MVVM、 观察者模式

MVC、MVVM、 观察者模式

作者: 张家杰仔 | 来源:发表于2017-04-05 10:22 被阅读119次
41070900.png

1、添加观察者 (forKeyPath 表示button所要观察的属性)

    [self.button addObserver:selfforKeyPath:@"titleLabel.text"options:NSKeyValueObservingOptionOld context:nil];

2、系统方法 //响应方法 (返回的object为被观察的本身(button),而不是观察的属性)

  • (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSString *,id> *)change context:(void *)context{
    if ([keyPath isEqualToString:@"titleLabel.text"]) { //如果有几个监听,需要先判断监听的对象

    if ([change[@"old"] isEqualToString:@"点击输入"]) {
    [self.button setTitleColor:[UIColor lightGrayColor] forState:UIControlStateNormal];
    }else{
    [self.button setTitleColor:[UIColorblackColor] forState:UIControlStateNormal];
    }
    }
    }

3、移除观察者

  • (void)dealloc
    {
    [self.button removeObserver:selfforKeyPath:@"titleLabel.text"];
    }

1、添加观察者 (forKeyPath 表示button所要观察的属性)

    [self.button addObserver:selfforKeyPath:@"titleLabel.text"options:NSKeyValueObservingOptionOld context:nil];

2、系统方法 //响应方法 (返回的object为被观察的本身(button),而不是观察的属性)

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSString *,id> *)change context:(void *)context{
if ([keyPath isEqualToString:@"titleLabel.text"]) { //如果有几个监听,需要先判断监听的对象    

  if ([change[@"old"] isEqualToString:@"点击输入"]) {
        [self.button setTitleColor:[UIColor lightGrayColor]         forState:UIControlStateNormal];
    }else{
     [self.button setTitleColor:[UIColorblackColor] forState:UIControlStateNormal];
    }
    }
}

3、移除观察者

- (void)dealloc
{
    [self.button removeObserver:selfforKeyPath:@"titleLabel.text"];
}```

相关文章

  • ios 常用设计模式

    工厂模式、观察者模式、代理模式、单例模式。 MVVM和MVC有什么区别? MVVM 的优势 低耦合:View 可以...

  • iOS开发中的几种设计模式

    目前常用的几种设计模式:代理模式、观察者模式、MVC模式、单例模式、策略模式、工厂模式、MVVM (一)代理 场景...

  • iOS开发中的几种设计模式

    目前常用的几种设计模式:代理模式、观察者模式、MVC模式、单例模式、策略模式、工厂模式、MVVM (一)代理 场景...

  • 2020-09-29

    目前常用的几种设计模式:代理模式、观察者模式、MVC模式、单例模式、策略模式、工厂模式、MVVM (一)代理 场景...

  • (IOS)设计模式

    目前常用的几种设计模式:代理模式、观察者模式、MVC模式、单例模式、策略模式、工厂模式、MVVM (一)代理 场景...

  • iOS知识点总结

    一、设计模式:MVC模式、单例模式、观察者模式、MVVM模式、工厂模式、代理模式、策略模式、适配器模式、模板模式、...

  • ios 开发模式

    目前常用的几种设计模式:代理模式、观察者模式、MVC模式、单例模式、策略模式、工厂模式、MVVM 1.代理 场景:...

  • 浅谈iOS设计模式

    序言:设计模式是一种编码经验,设计模式有MVC模式,工厂模式,单例模式,委托模式,MVVM模式,观察者模式。iOS...

  • iOS 设计模式 一

    设计模式随记 系统架构模式 1. MVC - MVVM - MVP - MVVM、MVC协调版 MVC :...

  • 初识Vue

    1. MVVM模式 Vue采用MVVM(Model-View-ViewModel)模式实现,MVVM模式由MVC演...

网友评论

      本文标题:MVC、MVVM、 观察者模式

      本文链接:https://www.haomeiwen.com/subject/ppetattx.html