当我的UIView改变时,我感兴趣的是运行一些方法,无论是通过框架改变还是仿射变换。我最好的想法是通过观察值的变化来实现这一点:
myView.frame和myView.transform。
但是,UIViews的视图部分与键值无关。幸运的是,视图的模型部分是CALayer。所以我设置如下:
[self.layer addObserver:self forKeyPath:@"transform"
options:(NSKeyValueObservingOptionNew) context:NULL];在视图的viewDidLoad:部分中。我已经为"frame“键做了同样的事情。但是当视图改变时,无论是通过在它的超级视图中移动视图,还是通过仿射变换,该方法:
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object
change:(NSDictionary *)change context:(void *)context {从未被调用过。怎么回事?有没有更好的方法来观察UIViews框架和转换中的变化?
发布于 2010-03-04 03:26:34
我不认为遵循KVC意味着遵循KVO。我想我读到过,由于性能方面的考虑,KVO不适用于CALayer属性。
https://stackoverflow.com/questions/1297566
复制相似问题