3

我正在使用观察者以下代码

myView = [[UIView alloc] initWithFrame:CGRectZero];
[myView addObserver:self forKeyPath:@"frame" options:NSKeyValueObservingOptionNew context:nil];

另一个代码

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
    NSLog(@"observeValueForKeyPath");
    if([keyPath isEqualToString:@"frame"]) 
    {
        [self layoutViews];
    }
}

但我从来没有得到 Log observeValueForKeyPath

4

1 回答 1

1

UIKit 并非始终与 KVO 兼容,您不应理所当然地认为 UIKit 类上的属性始终与KVO兼容,即使它们似乎是通过实验实现的。

另请参阅:iOS:我如何知道属性是否符合 KVO?

于 2011-12-23T04:15:07.783 回答