xcode iphone ball анимация - PullRequest
       10

xcode iphone ball анимация

0 голосов
/ 20 апреля 2011

Что я хочу сделать, так это чтобы каждые десять секунд шарик создавался вне экрана, а когда он создавался, он перемещался в центр экрана. Как я могу это сделать?

Ответы [ 2 ]

0 голосов
/ 20 апреля 2011

В вашем контроллере вида установите свойство UIImageView для вашего шара, сконструируйте шар и убедитесь, что его начальное местоположение находится за пределами видимой области экрана, а затем используйте 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 голосов
/ 20 апреля 2011
- (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];
}
...