在 Monotouch 对话框部分隐藏元素 - 高度不变
Hiding Elements in a Monotouch Dialog Section - Height does not change
我有一个包含 5 个元素的 Monotouch 对话框部分。
当条件为真时,我需要隐藏元素 1-4 并显示元素 5。当条件为假时,我需要显示元素 1-4 并隐藏元素 5。
Elements 消失了,但是 Section 高度没有改变。我已经在 DialogViewController 上尝试了所有常用方法,例如 ReloadData
、ReloadTableView
和 Reload
。
我能看到的唯一会导致高度改变的方法是 RemoveRange
在部分上,我不想添加和删除元素
如何在元素隐藏时关闭部分?
更新
找到隐藏 Monotouch Dialog (MT D) 元素并更改其高度的更好方法。
创建自定义 class 继承自您正在使用的 MT D 元素
public class DateElement : CrossUI.Touch.Dialog.Elements.DateElement, IElementSizing
并实现 IElementSizing 接口的 GetHeight
public nfloat GetHeight(UITableView tableView, Foundation.NSIndexPath indexPath)
{
if (this.Visible == false)
{
return 0;
}
else
{
return 44.0f;
}
}
只要 DialogViewController 被标记为具有 UnevenRows,实现 IElementSizing 的元素就会调用它们的 GetHeight。当元素不可见时简单地 return 0.
一些元素已经实现了 GetHeight,因此您可以在元素可见时调用基本实现。其他时候你将不得不自己实施一些东西。这可以是硬编码固定大小或测量标题和详细信息文本。
我可以 "hide and show" 元素的唯一方法是在需要时删除和插入元素。
我们正在使用 MVVMCross,我绑定到 ViewModel 属性 来控制可见性。现在我正在使用 MvxPropertyChangedListener
并监听之前绑定的相同 属性。
现在,当 属性 发生变化时,我会调用 Section 上的 Remove 和 Insert 方法。不是我想要的,但它有效。
我有一个包含 5 个元素的 Monotouch 对话框部分。
当条件为真时,我需要隐藏元素 1-4 并显示元素 5。当条件为假时,我需要显示元素 1-4 并隐藏元素 5。
Elements 消失了,但是 Section 高度没有改变。我已经在 DialogViewController 上尝试了所有常用方法,例如 ReloadData
、ReloadTableView
和 Reload
。
我能看到的唯一会导致高度改变的方法是 RemoveRange
在部分上,我不想添加和删除元素
如何在元素隐藏时关闭部分?
更新
找到隐藏 Monotouch Dialog (MT D) 元素并更改其高度的更好方法。
创建自定义 class 继承自您正在使用的 MT D 元素
public class DateElement : CrossUI.Touch.Dialog.Elements.DateElement, IElementSizing
并实现 IElementSizing 接口的 GetHeight
public nfloat GetHeight(UITableView tableView, Foundation.NSIndexPath indexPath)
{
if (this.Visible == false)
{
return 0;
}
else
{
return 44.0f;
}
}
只要 DialogViewController 被标记为具有 UnevenRows,实现 IElementSizing 的元素就会调用它们的 GetHeight。当元素不可见时简单地 return 0.
一些元素已经实现了 GetHeight,因此您可以在元素可见时调用基本实现。其他时候你将不得不自己实施一些东西。这可以是硬编码固定大小或测量标题和详细信息文本。
我可以 "hide and show" 元素的唯一方法是在需要时删除和插入元素。
我们正在使用 MVVMCross,我绑定到 ViewModel 属性 来控制可见性。现在我正在使用 MvxPropertyChangedListener
并监听之前绑定的相同 属性。
现在,当 属性 发生变化时,我会调用 Section 上的 Remove 和 Insert 方法。不是我想要的,但它有效。