それで、たくさん掘り下げた後、私はついに答えを見つけました。
最も有益なチュートリアルは次のとおりです。
http://sgmunn.com/blog/2012/03/using-loadnib-to-load-a-view/
基本的に、カスタム サブビューを作成し、インターフェイス ビルダーで設定してから、MonoTouch 側で簡単なマッピングを行う必要があります。しかし、この例から私を遠ざけていた重要なポイントは次のとおりです。
UIView をサブクラス化するときは、IntPtr の基本コンストラクターを実装する必要があります。
そうすれば、すべてがうまくいきます。アウトレットとアクションが接続されており、自由に操作できます。
編集:リンクするだけでなく、より説明的にするために...
MonoTouch で UIView のサブクラス化を開始するにはどうすればよいですか? 新しい「iPhone ビュー」を作成すると、ペン先だけが得られます。コンセントやアクションを接続する場所がありません。
新しい iPhone ビューを作成すると、ペン先が作成されます。ペン先を開き、「カスタム クラス」をカスタム クラスに設定します。MonoTouch はそれを自動的に生成する必要があります。そうでない場合は、新しい C# クラスとサブクラス UIView を作成しますが、必ず IntPtr のコンストラクターを作成してください。ストーリーボードを使用する場合、Storyboard.InstantiateViewController() を呼び出すと、IntPtr 値が入力されます。Storyboard.InstantiateViewController を使用する場合は、識別子もカスタム クラスの名前に設定する必要があることに注意してください。
その iPhone ビューを作成すると、IB で「コード ビュー」を開いて、アウトレットとアクションを接続できるようになります。
イベントを処理してプロパティにアクセスできるように、UIView をサブクラス化するための C# コード ファイルを使用するように MonoTouch をセットアップする方法を教えていただければ、それを nib に接続するにはどうすればよいですか? 多くの人が、Objective-C で initWithFrame を使用して loadNibNamed を呼び出すように言っていますが、これは正しく MonoTouch に変換されません。MonoTouch でそれを行うにはどうすればよいですか?
MonoTouch には initWithFrame: または CGRect はありません。RectangleF を使用します。ペン先をプログラムでロードする場合は、RectangleF を受け取るコンストラクターを使用し、それを使用して x、y、幅、高さを設定できます。
#1 と #2 が満たされている場合、このカスタム ツールバーを任意のビュー コントローラーにロードし、画面上の特定の座標に追加するにはどうすればよいですか? initWithFrame CGRect を実行すると、MonoTouch に単純なパスがないようです
ストーリーボードの場合、Storyboard.InstantiateViewController を使用します (IB で識別子を設定してください)。それ以外の場合は、次を使用します。
var nibObjects = NSBundle.MainBundle.LoadNib("YourViewName", theController, null);
var instantiatedView = (YourClassName)Runtime.GetNSObject(nibObjects.ValueAt(0));
上記のリンクに示されているように。
楽しみ!-アリソン。