Ipad 如何在MonoTouch.Dialog中设置单元格宽度

Ipad 如何在MonoTouch.Dialog中设置单元格宽度,ipad,xamarin.ios,monotouch.dialog,Ipad,Xamarin.ios,Monotouch.dialog,我在iPad屏幕上使用MonoTouch.Dialog 我已经创建了一个全屏背景,在这个背景上我绘制了一个MonoTouch.Dialog表 我希望在保留全屏背景的同时更改MonoTouch.Dialog表格(或所有单元格)的宽度。我如何才能做到这一点?您不能直接做到这一点,因为DialogViewController类似于UITableViewController和UITableView,它们有一些特性来填充其包含空间。有一个巧妙的技巧可以解决这个问题,您需要为所需的宽度创建一个“容器”UIV

我在iPad屏幕上使用MonoTouch.Dialog

我已经创建了一个全屏背景,在这个背景上我绘制了一个MonoTouch.Dialog表


我希望在保留全屏背景的同时更改MonoTouch.Dialog表格(或所有单元格)的宽度。我如何才能做到这一点?

您不能直接做到这一点,因为DialogViewController类似于UITableViewController和UITableView,它们有一些特性来填充其包含空间。有一个巧妙的技巧可以解决这个问题,您需要为所需的宽度创建一个“容器”UIView,并将其作为子视图添加到UIViewController中。现在创建DialogViewController并将其视图添加为该容器的子视图。该对话框将扩展到容器的大小,而不是父视图

你应该以这样的方式结束:

公共类MyController:UIViewController
{
UIView容器;
对话控制器;
公共覆盖无效ViewDidLoad()
{
base.ViewDidLoad();
容器=新UIView();
dvc=新的DialogViewController(UITableViewStyle.Grouped,null,true);
dvc.Root=新根(“标题”){
新订条文(){
新元素(“你好”)
}
};
视图.添加子视图(容器);
}
公共覆盖无效ViewDidLayoutSubviews()
{
base.ViewDidLayoutSubviews();
//你想要什么宽度都行
float newWidth=View.Bounds.Width/2;
container.Frame=新矩形f(0,0,newWidth,View.Bounds.Height);
//这是一种变通方法,以便TableView填充容器视图
//大小确定后。
container.AddSubView(dvc.View);
}
}

您不能直接执行此操作,因为DialogViewController类似于UITableViewController和UITableView,它们具有填充其包含空间的某些特性。有一个巧妙的技巧可以解决这个问题,您需要为所需的宽度创建一个“容器”UIView,并将其作为子视图添加到UIViewController中。现在创建DialogViewController并将其视图添加为该容器的子视图。该对话框将扩展到容器的大小,而不是父视图

你应该以这样的方式结束:

公共类MyController:UIViewController
{
UIView容器;
对话控制器;
公共覆盖无效ViewDidLoad()
{
base.ViewDidLoad();
容器=新UIView();
dvc=新的DialogViewController(UITableViewStyle.Grouped,null,true);
dvc.Root=新根(“标题”){
新订条文(){
新元素(“你好”)
}
};
视图.添加子视图(容器);
}
公共覆盖无效ViewDidLayoutSubviews()
{
base.ViewDidLayoutSubviews();
//你想要什么宽度都行
float newWidth=View.Bounds.Width/2;
container.Frame=新矩形f(0,0,newWidth,View.Bounds.Height);
//这是一种变通方法,以便TableView填充容器视图
//大小确定后。
container.AddSubView(dvc.View);
}
}