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财产的信息,这里有什么问题?谢谢.
因为我会重用这个自定义UIView多UIViewControllers,我想自定义视图自己能够处理的重新定位逻辑,而不是重复在每一个重新定位的逻辑UIViewController's UIScrollViewDelegate方法(如scrollViewDidScroll东西).
小智 4
一般来说,UIKit 不符合 KVO。某些属性可能会生成更改通知的事实并不可靠 - 它没有记录在案,并且可能会在未来版本中发生更改等。
既然需要重用这个重新定位逻辑,为什么不正确地将其分开呢?顺便说一句 - 您可以将其放置在自定义视图类本身中。