我想创建自己的自定义UIView,因为应用程序上的所有屏幕都将以编程方式创建背景。
问题是,我应该在哪里覆盖drawRect方法?
一方面,在IB方面是有意义的,从那时起我可以在Identity Inspector 中直接分配新创建的类UICustomView 。 / p>
另一方面,我是Monotouch中的新手,但似乎所有逻辑应该在c#上。 我试图在两者中都这样做但似乎没有任何效果 你能指点我一些教程或者给我一些建议,说明在Monotouch中覆盖UIVIew课程的最佳方法是什么?
答案 0 :(得分:5)
我在这里找到了解决方案:
http://lists.ximian.com/pipermail/monotouch/2009-September/000599.html
以下是一个示例代码:
using System;
using MonoTouch.CoreGraphics;
using System.Drawing;
using MonoTouch.Foundation;
using MonoTouch.UIKit;
namespace LongoMatch
{
public partial class UICustomView : UIView
{
public UICustomView(IntPtr handle) : base(handle)
{
}
public override void Draw (RectangleF rect)
{
MonoTouch.CoreGraphics.CGContext context = UIGraphics.GetCurrentContext();
context.SetLineWidth(8.0f);
context.SetStrokeColor(new CGColor(0f, 0f, 0f));
context.MoveTo(10,10);
context.AddLines(new PointF[] { new PointF(60, 60), new PointF(100, 100) });
context.StrokePath();
SetNeedsDisplay();
}
}
}