我正在尝试学习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旨在创建控制器的视图.