Neuzeichnen einer View mit NSTimer - Probleme

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Neuzeichnen einer View mit NSTimer - Probleme

    Hallo alle zusammen,

    ich habe mal wieder ein kleines Problem und brauche eure Hilfe. Ich möchte, nur zur Übung, eine kleine App schreiben, die jede Sekunde eine View mit setNeedsDisplay neu zeichnet und jedes mal einen Punkt der gezeichnet wird, um einen Pixel verschiebt.
    Soweit so gut, und das habe ich auch hinbekomme, mittels einer Vorschleife. Doch dann sieht man ja nicht, wie der Punkt über das Display "springt", sondern er ist ja gleich an der Endstelle. Deshalb möchte ich den Befehl, der in der Vorschleife ausgeführt wird, nur jede Sekunde ausführen und das habe ich vor mit einem NSTimer zu machen.
    Doch leider bekomme ich das nicht hin, und es bewegt und passiert überhaupt nichts.
    Ich habe meine setNeedsDisplay Methode mit einem Parameter umgeändert, der die y Position angibt und der Rest wird dann in der View erledigt (drawRect..).
    Was ist nun aber falsch, liegt es am Timer... ???

    Hier mein Code des ViewControllers, in dem der Timer ist und von dem ich auch aus meine setNeedsDisplay Methode mit dem Y Agument aufrufe:


    Quellcode

    1. #import "AlarmClockViewController.h"
    2. #import "PunktView.h"
    3. @interface AlarmClockViewController ()
    4. @property (nonatomic) int hohe;
    5. @end
    6. @implementation AlarmClockViewController
    7. @synthesize PunktView = _PunktView;
    8. @synthesize hohe = _hohe;
    9. - (void)viewDidLoad
    10. {
    11. NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(updatePunktView) userInfo: nil repeats:YES];
    12. }
    13. -(void) updatePunktView{
    14. [_PunktView setNeedsDisplay:_hohe];
    15. _hohe++;
    16. }
    17. @end
    Alles anzeigen


    Im Anhang nochmal mein komplettes Projekt.

    Ich hoffe auf Rückmeldung, und danke schonmal dafür

    Nils