gpt4 book ai didi

iphone - MvvmCross:以编程方式将 View 添加到 CollectionView 的 subview

转载 作者:行者123 更新时间:2023-11-29 13:05:25 26 4
gpt4 key购买 nike

根据用户操作,我想动态添加一个 View (在 MvxViewController 中)到 CollectionView 的 subview 集合。这是我正在做的:

不起作用:SubviewThree 继承 MvxViewController

var mvxViewController = new SubviewThree();  // SubviewThree inherits MvxViewController
var uiView = mvxViewController.View;
uiView.ClipsToBounds = true;
uiView.Hidden = false;
uiView.Frame = new RectangleF(0, 0, 320, 200);
CollectionView.AddSubview(uiView);
CollectionView.BringSubviewToFront(uiView);

工作:SubviewThree 继承 UIViewController

var mvxViewController = new SubviewThree();  // SubviewThree inherits UIViewController
var uiView = mvxViewController.View;
uiView.ClipsToBounds = true;
uiView.Hidden = false;
uiView.Frame = new RectangleF(0, 0, 320, 200);
CollectionView.AddSubview(uiView);
CollectionView.BringSubviewToFront(uiView);

作品:

var label = new UILabel();    // All simple controls work just fine
label.Text = "Test Label";
label.ClipsToBounds = true;
label.Hidden = false;
label.Frame = new RectangleF(0, 0, 320, 200);
CollectionView.AddSubview(label);
CollectionView.BringSubviewToFront(label);

在 MvvmCross 中实现此目标的最佳方法是什么?请注意,我不能在此处使用数据绑定(bind)(并通过 View 模型的 ObservableCollection 添加它),因为要添加的 View 取决于用户操作 - 它可能不是同一类型。

这是我正在尝试做的事情:

Nested views in collection view

在右/左按钮触摸时,我想交换 View 。 View 绑定(bind)到不同的 View 模型。交换 View 可以是 V1 类型(有一个栏和另一个 UIView)或其他类型(只有一个 UIView)。

这是我的示例项目的 github 链接,以防上图不清楚。您只需运行该应用程序并单击“添加”按钮即可。将 View 添加到 subview 的代码在 BarCell.cs 的第 158 行中。我在其中注释了上述代码行。

Github Link

最佳答案

为了让 MvvmCross 创建一个 View 并将其与它的 ViewModel Hook ,MvvmCross 使用了一个 MvxViewModelRequest 对象。在 iOS 中,它使用 Request 属性连接到 View

如果你愿意,你可以自己连接它 - 它只是一个必须在 ViewDidLoad 发生之前设置的 get/set 属性- 参见 IMvxTouchView.cs

或者:

关于iphone - MvvmCross:以编程方式将 View 添加到 CollectionView 的 subview ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18762203/

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