6

UIViewのとして追加されるカスタムがsubViewあり、スクロールするたびUIScrollViewUIView自動的に再配置されます。UIScrollViewプロパティを観察することに加えて(正常に動作します)、そのプロパティUIScrollView's contentOffsetも観察する必要があります。dragging

[scrollView addObserver:self 
             forKeyPath:@"dragging" 
                options:NSKeyValueObservingOptionNew 
                context:NULL];

しかし、メソッドでは、プロパティの変更に対してobserveValueForKeyPath:ofObject:change:context何も受け取りませんでした。ここで何が問題なのですか? ありがとう。NSNotificationdragging

更新しました

このカスタムUIViewを複数で再利用するので、各メソッドUIViewControllersで再配置ロジックを複製するのではなく、カスタムビュー自体が再配置ロジックを処理するようにします(など)。UIViewController's UIScrollViewDelegatescrollViewDidScroll

4

2 に答える 2

4

UIKit は一般的に KVO に準拠していません。一部のプロパティが変更通知を生成する可能性があるという事実は信頼できません。これは文書化されておらず、将来のバージョンなどで変更される可能性があります。

この再配置ロジックを再利用する必要があるため、適切に分離しませんか? ところで-カスタムビュークラス自体に配置できます。

于 2012-07-13T14:43:40.280 に答える
0

または、UIScrollViewにデリゲートを設定して実装しますscrollViewDidScroll:

于 2012-07-13T14:30:35.937 に答える