首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对UIView的ivars进行键值编码

问对UIView的ivars进行键值编码
EN

Stack Overflow用户
提问于 2009-08-19 02:34:41
回答 1查看 968关注 0票数 1

当我的UIView改变时,我感兴趣的是运行一些方法,无论是通过框架改变还是仿射变换。我最好的想法是通过观察值的变化来实现这一点:

myView.frame和myView.transform。

但是,UIViews的视图部分与键值无关。幸运的是,视图的模型部分是CALayer。所以我设置如下:

代码语言:javascript
复制
    [self.layer addObserver:self forKeyPath:@"transform" 
options:(NSKeyValueObservingOptionNew) context:NULL];

在视图的viewDidLoad:部分中。我已经为"frame“键做了同样的事情。但是当视图改变时,无论是通过在它的超级视图中移动视图,还是通过仿射变换,该方法:

代码语言:javascript
复制
    - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object
 change:(NSDictionary *)change context:(void *)context {

从未被调用过。怎么回事?有没有更好的方法来观察UIViews框架和转换中的变化?

EN

回答 1

Stack Overflow用户

发布于 2010-03-04 03:26:34

我不认为遵循KVC意味着遵循KVO。我想我读到过,由于性能方面的考虑,KVO不适用于CALayer属性。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1297566

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档