gpt4 book ai didi

xamarin.ios - 在 Monotouch 对话框部分隐藏元素 - 高度不变

转载 作者:行者123 更新时间:2023-12-02 01:36:52 24 4
gpt4 key购买 nike

我有一个包含 5 个元素的 Monotouch 对话框部分。

当条件为真时,我需要隐藏元素 1-4 并显示元素 5。当条件为假时,我需要显示元素 1-4 并隐藏元素 5。

Elements 消失了,但是 Section 的高度没有改变。我已经在 DialogViewController 上尝试了所有常用方法,例如 ReloadDataReloadTableViewReload

我能看到的唯一会导致高度改变的方法是 Section 上的 RemoveRange,我不想添加和删除元素

当元素被隐藏时,我如何让该部分关闭?

最佳答案

更新

找到了隐藏 Monotouch Dialog (MT D) 元素并改变其高度的更好方法。

创建一个继承自您正在使用的 MT D 元素的自定义类

public class DateElement : CrossUI.Touch.Dialog.Elements.DateElement, IElementSizing

并实现IElementSizing接口(interface)的GetHeight

public nfloat GetHeight(UITableView tableView, Foundation.NSIndexPath indexPath)
{
if (this.Visible == false)
{
return 0;
}
else
{
return 44.0f;
}
}

只要 DialogViewController 被标记为具有 UnevenRows,实现 IElementSizing 的元素就会调用它们的 GetHeight。当元素不可见时,只需返回 0。

某些元素已经实现了 GetHeight,因此您可以在元素可见时调用基本实现。其他时候你将不得不自己实现一些东西。这可以是硬编码固定大小或测量标题和详细信息文本。

我可以“隐藏和显示”元素的唯一方法是在需要时移除和插入元素。

我们正在使用 MVVMCross,我绑定(bind)到 ViewModel 属性来控制可见性。现在,我正在使用 MvxPropertyChangedListener 并监听之前绑定(bind)的同一属性。

现在,当属性更改时,我会调用 Section 上的 Remove 和 Insert 方法。不是我想要的,但它有效。

关于xamarin.ios - 在 Monotouch 对话框部分隐藏元素 - 高度不变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30716118/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com