UIScrollView
すべてのイベントを前のデリゲートに渡しながら、 のデリゲート (それは私のコードではなく、制御できません)にチェーンし、そのメソッドの一部を処理する必要があります。
私の単純な実装は、次のプロキシ クラスでした。
public class ScrollViewProxyDelegate : UIScrollViewDelegate
{
private UIScrollViewDelegate _realDelegate;
public ScrollViewProxyDelegate (UIScrollViewDelegate realDelegate)
{
_realDelegate = realDelegate;
}
public override void DecelerationStarted (UIScrollView scrollView)
{
_realDelegate.DecelerationStarted (scrollView);
}
public override void DecelerationEnded (UIScrollView scrollView)
{
_realDelegate.DecelerationEnded (scrollView);
}
// ...
}
この特定のデリゲートが別のクラス ツリーにあったため、コンストラクターscrollView.Delegate
に渡したことScrollViewProxyDelegate
が判明したため、これはうまくいきませんでした。null
私が求めているプロパティは ですがWeakDelegate
、それは ですNSObject
。
私はこれを読んで、まだ混乱しています。各メソッドでこれに対して目的の C セレクターを呼び出すことができると思いNSObject
ますが、もう少し冗長な方法はありますか?
更新 1
プロキシPerformSelector
を試してみRespondsToSelector
ましたが、認識されないセレクターのクラッシュが発生しました。
更新 2
さて、どうやらNSProxy
人々がこれに使用するものです。調査中。
アップデート 3
痛い、いいえNSProxy
、MonoTouchでは。
更新 4
私は自分のビューを監視するために Key Value Observing を使用することになりましたcontentOffset
。もっと早く考えるべきだった!それでも、必要になった場合にプロキシを実装する方法に興味があります。
ビューのデリゲートにフックする最も簡単な方法は何ですか?