observeValueForKeyPath没有调用

时间:2011-10-18 07:58:35

标签: iphone uiview addobserver

我正在使用观察者代码

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

1 个答案:

答案 0 :(得分:1)

UIKit并非始终符合KVO标准,你不应该理所当然地认为UIKit类的属性永远 KVO兼容,即使它们似乎是通过实验。

另请参阅:iOS: How do I know if a property is KVO-compliant?