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