2 Stimmen

iPhone SDK: Wie kann ich einen Timer wieder verwenden, nachdem er ungültig geworden ist?

Ich habe eine Animation in Xcode mit einem NSTimer eingerichtet, und es hielt immer wieder zu wiederholen, so dass ich diesen Befehl verwendet:

else if(gordon.image == pigImage11)
    [animationTimer invalidate];

Also, wenn gordon (ein UIImageView) Bild auf pigImage11 gesetzt ist, der Timer ungültig, dies gab den gewünschten Effekt der Beendigung der Animation ständig wiederholen, aber gestoppt den Timer wieder verwendet werden, so wie würde ich den Timer wieder nutzbar machen, aber haben es ungültig selbst auf diesem Frame? Im Interesse der weiteren Klärung hier ist mein gesamter Code:

- (IBAction)startClick:(id)sender{
    animationTimer = [NSTimer scheduledTimerWithTimeInterval:(1.00/30.00) target:self selector:@selector(tick) userInfo:nil repeats:YES];
}
- (void)tick{
    [self animatePig];
}
- (void)animatePig{
    UIImage *pigImage1=[UIImage imageNamed:@"gordonapple0004.png"];
    UIImage *pigImage2=[UIImage imageNamed:@"gordonapple0005.png"];
    UIImage *pigImage3=[UIImage imageNamed:@"gordonapple0006.png"];
    UIImage *pigImage4=[UIImage imageNamed:@"gordonapple0007.png"];
    UIImage *pigImage5=[UIImage imageNamed:@"gordonapple0008.png"];
    UIImage *pigImage6=[UIImage imageNamed:@"gordonapple0009.png"];
    UIImage *pigImage7=[UIImage imageNamed:@"gordonapple0010.png"];
    UIImage *pigImage8=[UIImage imageNamed:@"gordonapple0011.png"];
    UIImage *pigImage9=[UIImage imageNamed:@"gordonapple0012.png"];
    UIImage *pigImage10=[UIImage imageNamed:@"gordonapple0013.png"];
    UIImage *pigImage11=[UIImage imageNamed:@"gordonapple0014.png"];
    UIImage *pigImage12=[UIImage imageNamed:@"gordonapple0015.png"];
    UIImage *pigImage13=[UIImage imageNamed:@"gordonapple0016.png"];

    if(gordon.image == pigImage1)
        gordon.image = pigImage2;
    else if(gordon.image == pigImage2)
        gordon.image = pigImage3;
    else if(gordon.image == pigImage3)
        gordon.image = pigImage4;
    else if(gordon.image == pigImage4)
        gordon.image = pigImage5;
    else if(gordon.image == pigImage5)
        gordon.image = pigImage6;
    else if(gordon.image == pigImage6)
        gordon.image = pigImage7;
    else if(gordon.image == pigImage7)
        gordon.image = pigImage8;
    else if(gordon.image == pigImage8)
        gordon.image = pigImage9;
    else if(gordon.image == pigImage9)
        gordon.image = pigImage10;
    else if(gordon.image == pigImage10)
        gordon.image = pigImage11;
    else if(gordon.image == pigImage11)
        [animationTimer invalidate];
    else
        gordon.image = pigImage1;
}

- (void)stopTimer
{
    [animationTimer invalidate];
    [animationTimer release];
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X