1

フレームの変更またはアフィン変換によって 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 フレームと変換の変更を観察するより良い方法はありますか?

4

1 に答える 1

2

KVCコンプライアンスがKVOコンプライアンスを意味するとは思いません。パフォーマンス上の理由から、CALayerプロパティではKVOを使用できないことを読みました。

于 2010-03-03T19:26:34.213 に答える