2
我在iPad屏幕上使用MonoTouch.Dialog。如何在MonoTouch.Dialog中設置單元格寬度
我創建了一個全屏幕背景,在其上繪製了MonoTouch.Dialog表格。
我希望更改MonoTouch.Dialog表(或所有單元格)的寬度,同時保留全屏幕背景。我怎樣才能做到這一點?
我在iPad屏幕上使用MonoTouch.Dialog。如何在MonoTouch.Dialog中設置單元格寬度
我創建了一個全屏幕背景,在其上繪製了MonoTouch.Dialog表格。
我希望更改MonoTouch.Dialog表(或所有單元格)的寬度,同時保留全屏幕背景。我怎樣才能做到這一點?
你不能直接這樣做,因爲DialogViewController類似於UITableViewController和UITableView,它們有一些特性來填充它的包含空間。有一個聰明的技巧來解決這個問題,你需要爲你想要的寬度創建一個「容器」UIView,並將它作爲子視圖添加到UIViewController。現在製作您的DialogViewController並將其視圖添加爲該容器的子視圖。對話框將擴展到容器的大小,而不是父視圖。
您應該結束了,像這樣:
public class MyController : UIViewController
{
UIView container;
DialogViewController dvc;
public override void ViewDidLoad()
{
base.ViewDidLoad();
container = new UIView();
dvc = new DialogViewController(UITableViewStyle.Grouped, null, true);
dvc.Root = new Root("Title") {
new Section() {
new StringElement("Hello")
}
};
View.AddSubview(container);
}
public override void ViewDidLayoutSubviews()
{
base.ViewDidLayoutSubviews();
// Whatever width you want
float newWidth = View.Bounds.Width/2;
container.Frame = new RectangleF(0, 0, newWidth, View.Bounds.Height);
// This is a workaround so that the TableView fills the container view
// after it is sized.
container.AddSubView(dvc.View);
}
}