对UIView的ivars进行键值编码

时间:2009-08-19 02:34:41

标签: uiview calayer key-value-observing key-value-coding

当我的UIView被更改时,我有兴趣运行一些方法,通过帧更改或仿射变换。我最好的想法是通过观察价值变化来做到这一点:

myView.framemyView.transform

但是,UIViews的观看部分不是Key-Value投诉。幸运的是视图的模型部分,CALayer是。所以我设置如下:

    [self.layer addObserver:self forKeyPath:@"transform" 
options:(NSKeyValueObservingOptionNew) context:NULL];

在视图的viewDidLoad:部分中。我为“框架”键做了同样的事情。但是当视图改变时,无论是通过在其超视图中移动视图,还是通过仿射变换,方法都是:

    - (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object
 change:(NSDictionary *)change context:(void *)context {
永远不会打电话给

。是什么赋予了?有没有更好的方法来观察UIViews框架中的变化并进行转换?

1 个答案:

答案 0 :(得分:2)

我不认为KVC合规性意味着KVO合规性。我想我已经读到,由于性能方面的考虑,KVO不适用于CALayer属性。