title: Very simple test view in MonoTouch draws a line using Core Graphics but view content is not shown
body: <p>I give up now on this very simple test I've been trying to run. I want to add a subview to my window which does nothing but draw a line from one corner of the iPhone's screen to the other and then, using touchesMoved() it is supposed to draw a line from the last to the current point. 
  The issues:
  1. Already the initial line is not visible.
  2. When using Interface Builder, the initial line is visible, but drawRect() is never called, even if I call SetNeedsDisplay().</p>
  
  <p>It can't be that hard...can somebody fix the code below to make it work?</p>
  
  <p>In main.cs in FinishedLaunching():</p>
  
  <pre><code>oView = new TestView();
  oView.AutoresizingMask = UIViewAutoresizing.FlexibleWidth | UIViewAutoresizing.FlexibleHeight;
  oView.Frame = new System.Drawing.RectangleF(0, 0, 320, 480);
  window.AddSubview(oView);
  window.MakeKeyAndVisible ();
  </code></pre>
  
  <p>The TestView.cs:</p>
  
  <pre><code>using System;
  using MonoTouch.UIKit;
  using MonoTouch.CoreGraphics;
  using System.Drawing;
  using MonoTouch.CoreAnimation;
  using MonoTouch.Foundation;
  namespace Test
  {
      public class TestView : UIView
      {
          public TestView () : base()
          {
          }
  
          public override void DrawRect (RectangleF area, UIViewPrintFormatter formatter)
          {
              CGContext oContext = UIGraphics.GetCurrentContext();
              oContext.SetStrokeColor(UIColor.Red.CGColor.Components);
              oContext.SetLineWidth(3.0f);
              this.oLastPoint.Y = UIScreen.MainScreen.ApplicationFrame.Size.Height - this.oLastPoint.Y;
              this.oCurrentPoint.Y = UIScreen.MainScreen.ApplicationFrame.Size.Height - this.oCurrentPoint.Y;
              oContext.StrokeLineSegments(new PointF[] {this.oLastPoint, this.oCurrentPoint });
              oContext.Flush();
              oContext.RestoreState();
              Console.Out.WriteLine("Current X: {0}, Y: {1}", oCurrentPoint.X.ToString(), oCurrentPoint.Y.ToString());
              Console.Out.WriteLine("Last X: {0}, Y: {1}", oLastPoint.X.ToString(), oLastPoint.Y.ToString());
  
          }
  
          private PointF oCurrentPoint = new PointF(0, 0);
          private PointF oLastPoint = new PointF(320, 480);
  
          public override void TouchesMoved (MonoTouch.Foundation.NSSet touches, UIEvent evt)
          {
              base.TouchesMoved (touches, evt);
              UITouch oTouch = (UITouch)touches.AnyObject;
              this.oCurrentPoint = oTouch.LocationInView(this);
              this.oLastPoint = oTouch.PreviousLocationInView(this);
              this.SetNeedsDisplay();
          }
      }
  }
  </code></pre>