2013-06-14 7 views
5

aufzurufen Ich habe eine UIView, die Daten (die sich ändern) aus einem Puffer nimmt und plottet. Ich möchte den Bildschirm bei 10Hz abgeglichen. Die UIView wird Scheibe genannt, und das ist, wie ich es in dem Viewcontroller bin Aufruf:NSTimer verwenden, um SetNeedsDisplay in Xamarin für iOS

 //create graphics to display data 
     GraphPane pane = new GraphPane(); 
     pane.Frame = UIScreen.MainScreen.Bounds; 
     Add (pane); 

     //setup timer to update pane 
     NSTimer timer = NSTimer.CreateRepeatingTimer (0.1, delegate {pane.SetNeedsDisplay();}); 

Dies funktioniert nicht (Pane.Draw wird nie genannt), und ich habe kein gutes Beispiel gefunden Wie macht man das. Irgendwelche Vorschläge werden geschätzt.

+0

Wird "Timer" deaktiviert, wenn der Bereich nicht mehr verfügbar ist? – CodaFi

+0

Ich habe tatsächlich Timer als eine Klassenvariable definiert, so sollte es nicht. – reza

Antwort

10
 timer = NSTimer.CreateRepeatingScheduledTimer (TimeSpan.FromSeconds (0.1), delegate { 
      pane.SetNeedsDisplay(); 
     }); 

mein Problem behoben.

+0

Die Änderung war von CreateReapeatingTimer zu CreateRepeatingScheduledTimer - scheint nicht standardmäßig geplant zu sein. – reza