0

数日間、Xcode のサブクラスとカテゴリを理解しようとしましたが、結局、発生するイベントが 1 つ見つかりました。

- (void)setContentOffset:(CGPoint)contentOffset {
    NSLog(@"foo");
}

さらに混乱させるために、 Apple iOS のドキュメントを読んだ後、次のような情報が得られます。

- (void)setContentOffset:(CGPoint)contentOffset animated:(BOOL)animated {
    NSLog(@"bar");
}

最初のイベントは発生しますが、Apple のドキュメントでは発生しません。どうして?!

しかし、最初のケースでは、彼が解雇されたにもかかわらず、UIScrollView はスクロール/ドラッグ アンド バウンス動作を失います。setContentOffsetUIScrollViewのデフォルトの動作を維持するには、オーバーライド後に親メソッドを呼び出す必要があるためだと思います。しかし、時代遅れの Xcode アプローチのテストにはすでに疲れ果てています。

なぜ2番目のコードが起動されず、親のオーバーライドされたメソッドをどのように呼び出すのでしょうか?

前もって感謝します。

4

1 に答える 1