テーブルベースの UI レイアウトを作成するために、しばらくの間 MT.D を使用しています。ただし、XibFree は、(デザイナーを使用するのではなく) レイアウト コードをコードとして保持しながら、カスタム ページをレイアウトするのに優れていることがわかりました。これは、(a) コードによる簡単なカスタマイズと、(b) 他の開発者による保守容易性のためです。
両方同時に使いたいです。XibFree のテーブル作成は MT.D ほど使いやすいものではありませんが、セクションから UIView を抽出して XibFree レイアウトに配置する方法が見つかりません (必要なのは UIView だけです)。
何か案は?DVC の View と RootElement の TableView を使用してみましたが、どちらもレイアウトに表示できませんでした。
例:
new NativeView()
{
// table view from RootElement - shows empty space where table should be
View = entryView.TableView
},
また、ビューに UITableView を追加し、ReloadData() を呼び出して DVC の TableView プロパティをそれに設定しようとしましたが、成功しませんでした。
この方法でロードすることができました:
var re = new RootElement ("") {
new Section("Please Sign In")
{
(userName = new EntryElement("User name", "Your user name", "")),
(password = new EntryElement("Password", "Your password", "", true))
}
};
var entryView = new DialogViewController (re, false);
//entryView.
var uitv = new UITableView (RectangleF.Empty, UITableViewStyle.Grouped);
entryView.LoadView ();
//entryView.TableView = uitv;
re.TableView.Frame = RectangleF.Empty;
uitv = re.TableView;
次に、私のレイアウトで:
new NativeView()
{
View = uitv,
LayoutParameters = new LayoutParameters()
{
Width = AutoSize.FillParent,
Height = 200
}
},
これにより、ビュー内にスクロール可能な領域が表示されます:
線のある領域は独自のスクロール可能なビューです。これは、作成した 1 つのセクションのテーブル ビューをエリアに与えただけであることを考えると、予想していませんでした。セクションを取り出してビューに挿入したいので、ビュー内にスクロール可能なビューがありません。(UITextfields の奇妙な外観は気にしないでください。私は Pixate を使用してスタイルを設定しています。)
ここで見逃しているのはほんの小さなことであり、これは些細な作業であることを願っています。
編集: LayoutParameters オブジェクトに与えるために、レンダリングされたセクションの高さを計算する方法もありますか?