在使用MonoTouch.Dialog开发iPad应用程序时,我遇到了覆盖GetHeight
方法的问题。我正在实施IElementSizing
,但我的GetHeight
方法永远不会被调用。
还有其他人遇到过这个问题吗?感谢。
我确保我的root.UnevenRows = true;
我还尝试包含对话框项目,并在GetHeight()中为任何实现IElementSizing但没有运气的元素放置一个断点。在以前的iPhone项目中,这个工作正常,但在iPad上我仍然卡住了。还有其他“陷阱”我可能会丢失吗?
答案 0 :(得分:10)
这是MonoTouch.Dialog中的一个错误。基本上,当你分配根元素时,它想知道是否存在不均匀的行,因此它可以创建和缓存适当的UITableViewSource对象。
但是,如果在创建Source对象后,将具有实现IElementSizing的元素的Sections添加到Root元素。然后它不会调用你的GetHeight覆盖。例如,如果您获取数据异步和回调并将生成的Sections / Elements添加到RootElement ...或者基本上在调用PrepareRoot()之后添加Sections / Elements时。
有一个简单的解决方法:
this.Root.UnevenRows = true;
不管你的代码如何,我不能说这是你看到的错误。