设置MonoTouch.Dialog UITableView位置?

时间:2010-12-01 04:49:59

标签: xamarin.ios monotouch.dialog

有没有办法设置MonoTouch.Dialog DialogViewController的位置?我已经将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);
    }
}

3 个答案:

答案 0 :(得分:1)

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

TableViewController类应该自动管理TableView的定位,你不应该解决这个问题。即使你创建了具有不同位置的TableView,比如提到的miguel.de.icaza,TableViewController也会在WillAppear方法中重新排列TableView。

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

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

我很想听到我错了!

答案 1 :(得分:1)

为了解决类似问题,我更改了DialogViewController的派生链以继承UIViewController并直接创建UITableView。这允许我使用位图作为背景,唯一的方法是改变一些东西。我计划将其检查到源代码树中,我们进行任何其他更新和代码清理,但需要清理一些接口而不是

答案 2 :(得分:-1)

只需覆盖MyViewController中的MakeTableView方法,默认实现为:

return new UITableView (bounds, style)

所以你要做的就是改变传递的界限。