C# 如何在Visual Studio for Mac C中将自定义视图动态添加到视图中#
我正在完成一个项目,在这个项目中,我将拥有同一组表单组件的多个正方形大小的实例 我可以在表单UI中手动创建8个实例,也可以创建一个视图(或项目渲染器),然后将该视图的实例动态添加到主视图中 如何在Xamarin表单中向主视图动态添加创建和添加自定义视图 注意:包括Swift标签,因为如果您知道Swift或Objective C,您可能知道答案,因为API包装了Apple API 如果IIUC:C# 如何在Visual Studio for Mac C中将自定义视图动态添加到视图中#,c#,swift,xamarin,interface-builder,visual-studio-mac,C#,Swift,Xamarin,Interface Builder,Visual Studio Mac,我正在完成一个项目,在这个项目中,我将拥有同一组表单组件的多个正方形大小的实例 我可以在表单UI中手动创建8个实例,也可以创建一个视图(或项目渲染器),然后将该视图的实例动态添加到主视图中 如何在Xamarin表单中向主视图动态添加创建和添加自定义视图 注意:包括Swift标签,因为如果您知道Swift或Objective C,您可能知道答案,因为API包装了Apple API 如果IIUC: 在XCode接口生成器中创建视图 在ViewDidLoad中创建自定义实例视图的实例 将每个实例添加
- 在XCode接口生成器中创建视图
- 在ViewDidLoad中创建自定义实例视图的实例
- 将每个实例添加到主视图
我在Interface Builder中找到了一个文本字段,可以在其中输入类的名称。回到VisualStudio,我的主视图控制器可以看到HelloWorld类。我找到了一个名为
AddChildViewController
的方法。我试着测试它。什么也没发生。我需要设置位置和尺寸吗?我找不到任何API来执行此操作
明天我将再次搜索古代文本,例如代码。也许我错过了什么
public override void ViewDidLoad()
{
base.ViewDidLoad();
var view = new HelloView(this.Handle);
var handle = view.Handle;
base.AddChildViewController(view);
var view2 = new HelloView(this.Handle);
handle = view.Handle;
base.AddChildViewController(view2);
}
我注意到控制台日志中有一条注释:
已经有以下子女:
更新二:这将在主窗口中添加一个新的NSView,然后在该视图中添加一个NSButton:
var frame = new CoreGraphics.CGRect(0, 0, 100, 100);
var button = new NSButton(frame) {
Title = "My Button",
};
var view = new NSView(frame) {};
view.AddSubview(button);
View.AddSubview(view);
但它还没有添加我的自定义类
更新III:我可以添加自定义HelloWorldView类,但控件不可见。如果我在表单中添加一个按钮,我会看到它,但它被锚定在屏幕底部。我没有看到从Interface Builder创建的控件
//var frame = this.View.Frame;
var frame = new CoreGraphics.CGRect(0, 0, 100, 20);
var button = new NSButton(frame) {
Title = "My Button"
};
var frame2 = new CoreGraphics.CGRect(0, 0, 100, 100);
var helloView = new HelloView() {
};
helloView.Frame = frame2;
helloView.AddSubview(button);
mainFrame.AddSubview(helloView);
HelloView.cs:
public partial class HelloView : NSView
{
public HelloView () : base ()
{
}
}
请注意上面的代码:我删除了handle参数,因为它导致了编译器错误。
设置:使用Xamarin C#和XCode界面生成器的Visual Studio for Mac
--
赏金笔记
要获得赏金,您必须说明如何执行赏金要求部分中提到的步骤1或步骤2。我更喜欢第一步。如果您不确定,请询问
我很困惑,你是在构建mac应用程序还是移动应用程序?@BoredToDeath mac应用程序你有没有看一下他们是如何在这里添加“MainViewController”的:如果你按照说明操作,IDE应该在这里自动创建一个类(我知道你是在创建MacOS应用程序还是iOS应用程序,但它的工作原理应该类似),试着将你的问题简化为一个问题,并更新你的问题,这样你就能得到合适的答案attention@Saamer嗨,我看完了。它看起来很有趣,但我认为这不会有帮助,因为它将视图初始化为故事板。除了定位和或堆栈视图没有进行垂直或水平布局之外,我上面的代码可以正常工作。你能分享一下它现在的样子和你想要它的样子吗?