Xamarin iOS アプリでページを作成するために MonoTouch.Dialog を使用しています。
GetCell メソッドを利用して、複数行の RootElement を作成しようとしています。これはロード時に問題なく動作しますが、別のタブをクリックして元に戻すと、要素はデフォルトのサイズに縮小されます (また、要素をクリックすると、遷移前に縮小されます)。
UnevenRows をいじってみましたが、これまでのところ成功していません。
public partial class TestController : UITabBarController
{
public TestController()
: base("TestController", null)
{
}
public override void ViewDidLoad()
{
base.ViewDidLoad();
var navController = new UINavigationController
{
Title = "Test1"
};
navController.PushViewController(new TestDialogViewController(), false);
ViewControllers = new[]
{
navController,
new UIViewController
{
Title = "Test2"
},
};
}
}
public class TestDialogViewController : DialogViewController
{
public TestDialogViewController() : base(new RootElement("Test"))
{
Root.UnevenRows = true; // has no effect
var testSection = new Section("Test section");
var testChildRootElement = new CustomRootElement("Multi\nLine\nElement")
{
UnevenRows = true // has no effect
};
var testChildSection = new Section("Test child section");
var testEntryElement = new EntryElement(string.Empty, string.Empty, "Test entry element");
testChildSection.Add(testEntryElement);
testChildRootElement.Add(testChildSection);
testSection.Add(testChildRootElement);
Root.Add(testSection);
}
}
public class CustomRootElement : RootElement
{
public CustomRootElement(string caption) : base(caption) {}
public override UITableViewCell GetCell(UITableView tv)
{
var cell = base.GetCell(tv);
// Setup Multi-line Element
cell.TextLabel.LineBreakMode = UILineBreakMode.WordWrap;
cell.TextLabel.Lines = 0;
return cell;
}
}