MonoTouch Dialog StringElements可变单元格高度

时间:2011-11-11 19:49:49

标签: c# ios ipad xamarin.ios monotouch.dialog

在使用MonoTouch.Dialog开发iPad应用程序时,我遇到了覆盖GetHeight方法的问题。我正在实施IElementSizing,但我的GetHeight方法永远不会被调用。

还有其他人遇到过这个问题吗?感谢。

我确保我的root.UnevenRows = true;

我还尝试包含对话框项目,并在GetHeight()中为任何实现IElementSizing但没有运气的元素放置一个断点。在以前的iPhone项目中,这个工作正常,但在iPad上我仍然卡住了。还有其他“陷阱”我可能会丢失吗?

1 个答案:

答案 0 :(得分:10)

这是MonoTouch.Dialog中的一个错误。基本上,当你分配根元素时,它想知道是否存在不均匀的行,因此它可以创建和缓存适当的UITableViewSource对象。

但是,如果在创建Source对象后,将具有实现IElementSizing的元素的Sections添加到Root元素。然后它不会调用你的GetHeight覆盖。例如,如果您获取数据异步和回调并将生成的Sections / Elements添加到RootElement ...或者基本上在调用PrepareRoot()之后添加Sections / Elements时。

有一个简单的解决方法:

this.Root.UnevenRows = true;

不管你的代码如何,我不能说这是你看到的错误。