我有兴趣在我的 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 框架的变化和变换?