观察滚动视图的"拖动"属性但未收到任何通知

Pwn*_*Pwn 5 cocoa-touch objective-c key-value-observing uiscrollview uiscrollviewdelegate

我有一个自定义UIView添加为subViewa UIScrollView,我希望UIView每当UIScrollView滚动时自动重新定位.除了观察UIScrollView's contentOffset属性(工作正常),我还需要观察它的dragging属性:

[scrollView addObserver:self 
             forKeyPath:@"dragging" 
                options:NSKeyValueObservingOptionNew 
                context:NULL];
Run Code Online (Sandbox Code Playgroud)

但是在observeValueForKeyPath:ofObject:change:context方法上,我没有收到任何NSNotification改变dragging财产的信息,这里有什么问题?谢谢.

更新

因为我会重用这个自定义UIViewUIViewControllers,我想自定义视图自己能够处理的重新定位逻辑,而不是重复在每一个重新定位的逻辑UIViewController's UIScrollViewDelegate方法(如scrollViewDidScroll东西).

小智 4

一般来说,UIKit 不符合 KVO。某些属性可能会生成更改通知的事实并不可靠 - 它没有记录在案,并且可能会在未来版本中发生更改等。

既然需要重用这个重新定位逻辑,为什么不正确地将其分开呢?顺便说一句 - 您可以将其放置在自定义视图类本身中。