2010-05-03 136 views
0

我試着在菜單中上下移動UIButton。 我使用以下解決方案的問題是計時器不準確。有時Button會向上移動122px,有時只會移至120px。我如何解決這個問題?左右移動UIButton

-(IBAction)marketTabClicked:(id)sender { 

    if (marketTabExtended) { 
     NSLog(@"marketTabExtended = YES"); 
     return; 
    } 
    else { 
     if (iPhoneAppsExtended) { 
      timer = [NSTimer scheduledTimerWithTimeInterval:0.005 target: self selector: @selector(animateItemApps) userInfo: nil repeats: YES]; 
     } 
     else { 
      if (homepageExtended) { 
       timer = [NSTimer scheduledTimerWithTimeInterval:0.005 target: self selector: @selector(animateItemHomepage) userInfo: nil repeats: YES]; 
      } 
      else { 
       timer = [NSTimer scheduledTimerWithTimeInterval:0.005 target: self selector: @selector(animateItemMarketing) userInfo: nil repeats: YES]; 
      } 

     } 

    } 

    [self performSelector:@selector(stopTimer) withObject:self afterDelay:0.605]; 
    iPhoneAppsExtended = NO; 
    homepageExtended = NO; 
    marketTabExtended = NO; 
    marketTabExtended = YES; 

} 



-(void)animateItemApps { 
    CGPoint movement; 
    movement = CGPointMake(0, -1); 
    homepage.center = CGPointMake(homepage.center.x, homepage.center.y + movement.y); 
} 

-(void)animateItemHomepage { 
    CGPoint movement; 
    movement = CGPointMake(0, 1); 
    homepage.center = CGPointMake(homepage.center.x, homepage.center.y + movement.y); 
    //marketTab.center = CGPointMake(marketTab.center.x, marketTab.center.y + movement.y); 
} 

-(void)animateItemMarketing { 
    CGPoint movement; 
    movement = CGPointMake(0, -1); 
    //marketTab.center = CGPointMake(marketTab.center.x, marketTab.center.y + movement.y); 
    homepage.center = CGPointMake(homepage.center.x, homepage.center.y + movement.y); 
} 

-(void)stopTimer { 
    [timer invalidate]; 
} 

回答

1

爲什麼不使用UIView動畫塊?

[UIView beginAnimations:nil context:nil]; 
//Change UIButton frame here 
[UIView commitAnimations]; 

在動畫塊(其中的註釋是)所做的更改,將commitAnimations後進行動畫處理。

查看課程方法以獲得更多選項:http://tinyurl.com/34y8j5o

+0

謝謝您的完美工作! – 2010-05-04 19:51:10