2011-04-20 77 views
0

我想要做的是每十秒钟在屏幕外创建一个球,创建它时移动到屏幕中心。我怎样才能做到这一点?xcode iphone球动画

+0

VOUS devez VOUS rendreà每个槽口问题阙VOUS avez似曾相识demandé et cliquez sur la caseàcocher par laréponsela plusappareséeàl'accrepter。 Aider les gensàobtenir la reconnaissance。 Si vous n'avez pas“accepter”lesréponsesen cochant les gens sont moins susceptibles d'aider。 Vous devez augmenter votre“accepter taux«aussi proche que possible de 100% – 2011-04-26 20:40:22

回答

0

在您的视图控制器设置了一个UIImageView属性为你的球,contruct球并确保它的起始位置远离creen的可视区域,然后使用一个NSTimer它将触发每十秒这卡拉斯一方法将屏幕上的球移动到中心。

-(void)viewDidLoad{ 
    NSTimer *ballTimer = [NSTimer timerWithTimeInterval:10.0 
               target:self 
               selector:@selector(moveBall) 
               userInfo:nil 
               repeats:YES]; 

    [[NSRunLoop mainRunLoop] addTimer:ballTimer forMode:NSRunLoopCommonModes]; 

    myBall = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"MyBallImageFile.png"]]; 
    myBall.center = CGPointMake(320/2, [self randNumBetween:-50:-100]); 
    [self.view addSubview:myBall]; 
} 

-(void)moveBall{ 
    myBall.center = CGPointMake(320/2, [self randNumBetween:-50:-100]); 
    [UIView animateWithDuration:5.0 animations:^{ 
     myBall.center = CGPointMake(320/2, 480/2); 
    }]; 
} 

---------- ------------编辑

- (CGFloat)randNumBetween:(CGFloat) min :(CGFloat) max{ 
    CGFloat difference = max - min; 
    return (((CGFloat) rand()/(CGFloat)RAND_MAX) * difference) + min; 
} 
+0

是的,但我想要一个屏幕外的随机位置 – 2011-04-20 09:27:54

+0

我添加了一个函数,生成随机数,请检查我的编辑 – Sabobin 2011-04-20 09:33:58

+0

非常感谢你 – 2011-04-20 09:36:15

0
- (void)viewDidLoad { 
    [super viewDidLoad]; 

    myBallImage = [[UIImage imageNamed:@"ball.png"] retain]; 
    myTimer = [NSTimer scheduledTimerWithTimeInterval:10.0 target:self selector:@selector(addBallToScreen) userInfo:nil repeats:YES]; 
} 
- (void)viewDidUnload { 
    [myBallImage release]; 
    [myTimer invalidate]; 
} 

- (void)addBallToScreen { 
    //Create the imageView 
    UIImageView *imageView = [[UIImageView alloc] initWithImage:myBallImage]; 
    imageView.transform = CGAffineTransformMakeTranslation(1000, 1000); 
    [self.view addSubview:imageView]; 
    [imageView release]; 

    //Animate the image view 
    [UIView beginAnimations:nil context:nil]; 
    imageView.transform = CGAffineTransformMakeTranslation(50, 50); 
    [UIView commitAnimations]; 
} 
+0

是的,但我想要在屏幕之外的任意位置 – 2011-04-20 09:27:10

+0

只需用随机值(例如使用arc4rand)替换imageView.transform = CGAffineTransformMakeTranslation(1000,1000) – ingham 2011-04-20 20:59:51