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。もっと早く考えるべきだった!それでも、必要になった場合にプロキシを実装する方法に興味があります。
ビューのデリゲートにフックする最も簡単な方法は何ですか?