我刚刚开始接触 MonoTouch,并且遇到了最基本的问题。在他们的教程中,他们介绍了通过 XCode 的 Interface Builder 直接向 XIB 添加控件。但是,我无法弄清楚如何向 XIB 添加自定义控件。
我已经看到了许多子类化基本 UICollectionView 以根据您自己的目的对其进行自定义的示例,并且在我的项目的 C# 代码中完成了此操作。我的问题是,如何将 UICollectionView 的特定子类添加到 XIB 以在项目中使用?
我刚刚开始接触 MonoTouch,并且遇到了最基本的问题。在他们的教程中,他们介绍了通过 XCode 的 Interface Builder 直接向 XIB 添加控件。但是,我无法弄清楚如何向 XIB 添加自定义控件。
我已经看到了许多子类化基本 UICollectionView 以根据您自己的目的对其进行自定义的示例,并且在我的项目的 C# 代码中完成了此操作。我的问题是,如何将 UICollectionView 的特定子类添加到 XIB 以在项目中使用?
对于一个普通的 UIView,你需要经历的基本步骤是:
在 C# 中创建您的自定义视图作为一个类
public class MyView
{
}
向其中添加 UIView 基类,添加 Register 属性并添加两个构造函数:
[Register("MyView")]
public class MyView : UIView
{
public MyView() {}
public MyView(IntPtr handle) : base(handle) {}
}
为了让它做一些有用的事情,然后添加一个 Draw 实现:
public override Draw(RectangleF rect)
{
var context = UIGraphics.CurrentGraphics();
UIColor.Red.SetFill();
context.FillEclipseInRect(rect);
}
保存并构建您的项目
现在在要使用自定义视图的 UIViewController 的 XIB 编辑器中,将 UIView 添加到设计图面
选择该 UIView 并在 Identity Inspector 中,将 UIView 的“自定义类”设置为“MyView”
将所有内容保存在 xCode 中
返回 MonoDevelop,构建并运行
此流程的视频可在以下位置获得:- http://www.youtube.com/watch?v=ggwO46dd-50&feature=youtube_gdata
对于自定义 UICollectionView、UILabel、UITableViewCell 或任何其他 UIView 基类,您可以遵循类似的步骤,只是使用不同的基类和不同的构造函数以支持特定的 View。
有关自定义表格单元格的视频,请参阅:http ://slodge.blogspot.co.uk/2013/01/uitableviewcell-using-xib-editor.html