精华内容
下载资源
问答
  • KVO

    2017-07-12 16:30:52
    KVO

      self.stu=[[Student alloc]init];

        [self.stu setValue:@"小羊羔" forKey:@"name"];

        [self.stu addObserver:self forKeyPath:@"name" options:NSKeyValueObservingOptionNew|NSKeyValueObservingOptionOld  context:nil];

        [self performSelector:@selector(toChangeValue) withObject:nil afterDelay:2.0];

    -(void)toChangeValue

    {

        [self.stu setValue:@"鱼儿飞" forKey:@"name"];

    }

    -(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context

    {

        NSLog(@"%@",change);//改变的数据(包含该改变前的和改变后的数据)

        if([keyPath isEqualToString:@"name"])

        {

            NSLog(@"%@",[self.stu valueForKey:@"name"]);

        }

    }


    展开全文
  • kvo

    2019-10-04 20:51:46
    KVO的使用非常简单,使用KVO的要求是对象必须能支持kvc机制——所有NSObject的子类都支持这个机制。拿上面的渐变导航栏做,我们为tableView添加了一个监听者controller,在我们滑动列表的时候,会计算当前列表的滚动...

    使用

    KVO的使用非常简单,使用KVO的要求是对象必须能支持kvc机制——所有NSObject的子类都支持这个机制。拿上面的渐变导航栏做,我们为tableView添加了一个监听者controller,在我们滑动列表的时候,会计算当前列表的滚动偏移量,然后改变导航栏的背景色透明度。

    //添加监听者
    [self.tableView addObserver: self forKeyPath: @"contentOffset" options: NSKeyValueObservingOptionNew context: nil];
    /**
     *  监听属性值发生改变时回调
     */
    - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSString *,id> *)change context:(void *)context
    {
        CGFloat offset = self.tableView.contentOffset.y;
        CGFloat delta = offset / 64.f + 1.f;
        delta = MAX(0, delta);
        [self alphaNavController].barAlpha = MIN(1, delta);
    }

     



     

    转载于:https://www.cnblogs.com/LGX3399577/p/sfsffefe.html

    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,890
精华内容 2,356
关键字:

kvo