Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/131.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xamarin.ios 设置MonoTouch.Dialog UITableView位置?_Xamarin.ios_Monotouch.dialog - Fatal编程技术网

Xamarin.ios 设置MonoTouch.Dialog UITableView位置?

Xamarin.ios 设置MonoTouch.Dialog UITableView位置?,xamarin.ios,monotouch.dialog,Xamarin.ios,Monotouch.dialog,有没有办法设置MonoTouch.Dialog ViewController的位置?我已经将DialogViewController子类化,并在顶部添加了一个UIToolbar,现在我想将表视图向下移动到相应的像素 public class MyViewController : DialogViewController { UIToolbar toolbar; public SessionsListViewController (RootElement rootElement)

有没有办法设置MonoTouch.Dialog ViewController的位置?我已经将DialogViewController子类化,并在顶部添加了一个UIToolbar,现在我想将表视图向下移动到相应的像素

public class MyViewController : DialogViewController
{
    UIToolbar toolbar;

    public SessionsListViewController (RootElement rootElement) : base(rootElement)
    {
      this.toolbar = new UIToolbar(new RectangleF(0,0,768,44));
      this.toolbar.Items = new UIBarButtonItem[0];
      this.Add(toolbar);
    }
}

只需重写MyViewController中的MakeTableView方法,默认实现为:

return new UITableView (bounds, style)

因此,您所要做的就是更改传递的边界。

我始终无法更改MonoTouch.Dialog中TableView的位置。但这不是库的问题,而是TableViewController的工作方式,它由MT.Dialog继承

TableViewController类应该自动管理TableView的定位,而您不应该解决这个问题。即使您使用不同的位置创建TableView,如miguel.de.icaza所提到的,TableViewController也会在WillAspect方法期间重新排列TableView

当不使用MT.Dialog时,最好的解决方法是放下TableViewController,简单地使用UIViewController和TableView对象,例如,在屏幕的一半上有一个表。您仍然可以将委托和数据源传递给TableView,因此实际上您只需松开TableView的自动定位

我试图将MT.Dialog更改为从UIViewController而不是UITableViewController继承,但这导致了很多问题,我始终无法完成。也许有一天我会这么做


不过我很想听到我错了

为了避免类似的问题,我将DialogViewController的派生链更改为继承UIViewController并直接创建UITableView。这使我可以使用位图作为背景,唯一的方法是稍微改变一下周围的情况。我计划将此检查到源代码树中,以便我们进行任何其他更新和代码清理,但需要清理一些接口,而不是

谢谢Miguel。我尝试了下面两种方法,表视图根本没有改变位置。我碰到了断点,所以我知道它被调用了,但是不管我传入什么值,表都不会移动。public override UITableView MakeTableView(RectangleF bounds,UITableView样式){var newBounds=new RectangleF(500,500,10,10);//return base.MakeTableView(newBounds,style);return new UITableView(newBounds,style);}Kenny,你完成过这项工作吗?听起来很像我可以用的东西。。。除非有更好的方法将UIToolbar添加到MonoTouch.Dialog…看,我已经测试过了,它适合我。