C# · 12月 26, 2021

c# – 如何将自定义视图添加到monotouch中的XIB文件定义视图

我正在尝试学习monotouch在这一刻,并跟随Mike BlueStein学习monotouch书.不是一本坏书,但是由于 xcode 4(我相信)和monotouch上的较新版本已经出现,它稍微过时了.

无论如何,在我的项目中,我有一个控制器和一个xib文件.我还有一个自定义视图(例如myview:UIView),它覆盖了绘制方法.我想在xib文件中定义的视图旁边显示我的自定义视图.我该怎么做?

在控制器中,如果我重写LoadView方法,并将View设置为我的自定义视图的一个实例,那么我可以看到它,但是我放弃了xib文件中定义的所有内容.如果我尝试添加一个子视图,它根本不显示.

我失踪了什么如果问题不明确,请问我,所以我可以澄清一下.

干杯.

解决方法 按照以下步骤在XIB中使用自定义视图:

首先,使用RegisterAttribute装饰视图:

[Register(“MyView”)]public class MyView : UIView{}

并实现以下构造函数:

public MyView(IntPtr handle) : base(handle) {}

当运行时在内存警告被破坏后,运行时将尝试重新创建视图,就需要这个构造函数.创建自定义类后:

>在Xcode中打开XIB(总是通过MonoDevelop双击它),并在其中添加一个UIView.
>在Xcode中,将UIView的类设置为MyView(或将您传递给RegisterAttribute的任何名称):

>编译运行.

编辑:

不要为从XIB加载的控制器覆盖LoadView.当该控件的视图未从XIB加载时,LoadView旨在创建控制器的视图.