当我的UIView被更改时,我有兴趣运行一些方法,通过帧更改或仿射变换。我最好的想法是通过观察价值变化来做到这一点:
myView.frame
和myView.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框架中的变化并进行转换?
答案 0 :(得分:2)
我不认为KVC合规性意味着KVO合规性。我想我已经读到,由于性能方面的考虑,KVO不适用于CALayer属性。