5

有没有办法设置 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);
    }
}
4

3 回答 3

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 继承,但这会导致很多问题,我永远无法完成它。也许有一天我会做到的。

不过,我很想听听我错了!

于 2010-12-01T13:54:45.280 回答
1

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

于 2011-04-08T16:00:30.840 回答
-1

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

return new UITableView (bounds, style)

所以你所要做的就是改变通过的界限。

于 2010-12-01T07:02:00.037 回答