MonoTouch对话框StringElements可变单元格高度

本文关键字:单元格 高度 对话框 StringElements MonoTouch | 更新日期: 2023-09-27 18:14:34

在使用MonoTouch.Dialog开发iPad应用程序时,我遇到了重写GetHeight方法的问题。我正在实现IElementSizing,但我的GetHeight方法从未被调用。

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

我确保我的根。UnevenRows = true

我还尝试包括对话框项目,并在GetHeight()中为任何实现IElementSizing的元素放置一个断点,但没有运气。在之前的一个iPhone项目中,这种方法运行得很好,但在iPad上我仍然卡住了。还有其他我可能遗漏的"陷阱"吗?

MonoTouch对话框StringElements可变单元格高度

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

但是,如果您在源对象已经创建之后向根元素添加带有实现IElementSizing的元素的Sections。那么它就不会调用你的GetHeight重写。这方面的一个例子是,如果你获取数据异步和回调,并将结果的Sections/Elements添加到RootElement…或者在prepareeroot()被调用后添加Sections/Elements。

有一个简单的解决方法:

this.Root.UnevenRows = true;

如果没有查看你的代码,我不能说这是否是你所看到的bug。