我有一个自定义UIView
,该subView
被添加为UIScrollView
的{{1}},我希望只要UIView
滚动,UIScrollView
会自动重新定位UIScrollView's
。除了观察contentOffset
dragging
属性(工作正常)之外,我还需要观察其[scrollView addObserver:self
forKeyPath:@"dragging"
options:NSKeyValueObservingOptionNew
context:NULL];
属性:
observeValueForKeyPath:ofObject:change:context
但是在NSNotification
方法中,我没有收到任何dragging
更改UIView
属性,这里有什么问题?感谢。
由于我要在多个UIViewControllers
中重用此自定义UIViewController's
,我希望自定义视图本身处理重新定位逻辑,而不是复制每个UIScrollViewDelegate
{{中的重新定位逻辑1}}方法(如scrollViewDidScroll
事物)。
答案 0 :(得分:4)
UIKit一般不符合KVO标准。某些属性可能会生成更改通知这一事实并不可靠 - 它没有记录,可能会在将来的版本中发生变化等。
由于您需要重用此重新定位逻辑,为什么不将它正确分开?顺便说一句 - 您可以将它放在自定义视图类中。
答案 1 :(得分:0)
或者您将代理人设置为UIScrollView并实施scrollViewDidScroll: