Monotouch Dialog OwnerDrawnElement - 未调用高度大小

时间:2014-06-02 17:16:44

标签: xamarin monotouch.dialog xamarin-studio

我试图从OwnerDrawnElement继承(如文档中所示)。一切似乎都在工作,除了从未调用高度方法,所以我无法设置单元格的高度。永远不会调用Height方法(断点永远不会命中)。我试图强制重新实现IElementSizing并再次实现该方法作为一种新方法。同样,这也不会受到打击。这是精简代码

public class CustomDrawElement : OwnerDrawnElement, IElementSizing
    {
        public CustomDrawElement (UITableViewCellStyle style, string cellIdentifier) : base (style, cellIdentifier)
        {

        }

        #region implemented abstract members of OwnerDrawnElement

        public override void Draw (System.Drawing.RectangleF bounds, MonoTouch.CoreGraphics.CGContext context, MonoTouch.UIKit.UIView view)
        {
            UIColor.Blue.SetFill ();
            context.FillRect (bounds);
        }

        public override float Height (System.Drawing.RectangleF bounds)
        {
            return 220f;
        }

        #endregion

        public new float GetHeight (UITableView tableView, NSIndexPath indexPath) {
            return 220f;
        }
    }

创建对象时,我仅用于测试目的:

var e = new CustomDrawnElement(UITableViewCellStyle.Default,“myKey”);

我目前正在使用最新的Xamarin Studio 3。

我已阅读有关此课程的所有问题,似乎没有人遇到此问题。不确定是否是由于新的3版本引入了新的bug。

1 个答案:

答案 0 :(得分:0)

好的,经过大量研究,我找到了答案。为了调用自定义高度方法,您需要在为MonoDialog创建的rootElement上设置UnevenRows = true。