我试图从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。
答案 0 :(得分:0)
好的,经过大量研究,我找到了答案。为了调用自定义高度方法,您需要在为MonoDialog创建的rootElement上设置UnevenRows = true。