如何在monotouch中将自定义视图添加到XIB文件定义视图

Pra*_*abu 9 c# mono monodevelop xamarin.ios ios

我正在努力学习monotouch,并遵循Mike BlueStein的学习单音书.这本书并不算坏,但是自从xcode 4(我相信)以及monotouch的新版本问世以来它已经过时了.

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

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

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

干杯.

Dim*_*kos 22

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

首先,用以下内容装饰视图RegisterAttribute:

[Register("MyView")]
public class MyView : UIView
{
}
Run Code Online (Sandbox Code Playgroud)

并实现以下构造函数:

public MyView(IntPtr handle) : base(handle) {}
Run Code Online (Sandbox Code Playgroud)

当运行时在内存警告销毁后尝试重新创建视图时,需要此构造函数.创建自定义类后:

  • 在Xcode中打开XIB(总是通过MonoDevelop双击它)并添加一个UIView你想要的地方.
  • 在Xcode中,将UIView的类设置为MyView(或者传递给它的名称RegisterAttribute):

自定义视图的自定义类

  • 编译运行.

编辑:

不要覆盖LoadView从XIB加载的控制器.LoadView用于在未从XIB加载控制器视图时创建控制器的视图.