3

我有一个自定义元素类,它只在我旋转设备时调整行的大小。在初始显示时,不会调整行的大小。

public class MultiImageElement : Element, IElementSizing

其中实现了IElementSizing接口:

    #region IElementSizing implementation
    public float GetHeight (UITableView tableView, NSIndexPath indexPath)
    {
        return 78;
    }
    #endregion

但是,这永远不会被调用,并且行高保持默认大小。

我在循环中将元素添加到我的根:

for (int i = 0; i < secFolder.Rows; i++)
{
   sec.Add (new MultiImageElement (secFolder.ThumbnailPathsForRow (i), imageSize));
}
this.Root.Add (sec);
4

3 回答 3

4

我找到了解决方案。

Monotouch.Dialog实现IElementSizing,必须将 Sections 和 Elements 添加到本地“myRoot”变量中。

建成后,将其设置Dialog's Root为。

var myRoot = new Root();
MakeElements()
this.Root = myRoot;

这行得通。

于 2011-05-11T00:47:44.283 回答
3

另一种解决方案是自定义 DialogViewController,然后将 Root.UevenRows 设置为 true:

    公共类 CustomViewController : DialogViewController
    {
        公共 CustomViewController(RootElement 根):基础(根)
        {
            Root.UnevenRows = true;
            ...
        }
        ...
     }
于 2011-06-02T19:15:35.503 回答
1

可能不相关,但发生在我身上最初的旋转设备事件没有向我触发。因此,我实现了该标志并启动了一个计划选择器,以便在应用程序启动时调用,以确保调用 ShouldAutorotate... 并在需要时为我执行布局。

于 2011-05-10T15:42:24.247 回答