UIView Получить положение во время Animatoin - PullRequest
0 голосов
/ 16 января 2012

Я рассматривал каждый случай этого вопроса в Stack, а также на различных других веб-сайтах, но он до сих пор мне не подходит.Я пытаюсь определить положение моего объекта во время сеанса анимации.

Вот что у меня есть:

- (void)viewDidLoad{
    currentPosition = [[bikeMotion.layer presentationLayer] center]; //its a CGPoint
}

- (void)doAnimation {
    bikeMotion = [[DotAnimation alloc]initWithFrame:CGRectMake((*bikePathPoints)[0].x, (*bikePathPoints)[0].y, 8, 8)];

    //... [self animate stuff]...
    [NSTimer scheduledTimerWithTimeInterval:0.07f target:self selector:@selector(backgroundAnimations) userInfo:nil repeats:YES];
}

-(void)backgroundAnimations{
    cout << currentPosition.x << endl;

}

Я также попробовал это:

- (void)viewDidLoad{
    currentPosition = [[bikeMotion.layer presentationLayer] frame]; //its a CGRect
}

- (void)doAnimation {
    bikeMotion = [[DotAnimation alloc]initWithFrame:CGRectMake((*bikePathPoints)[0].x, (*bikePathPoints)[0].y, 8, 8)];
    //...[self animation stuff];
    [NSTimer scheduledTimerWithTimeInterval:0.07f target:self selector:@selector(backgroundAnimations) userInfo:nil repeats:YES];
}

-(void)backgroundAnimations{
    cout << currentPosition.origin.x << endl;

}

Я даже пробовал это:

- (void)viewDidLoad{
    p = (CALayer*)[bikeMotion.layer presentationLayer];

}

-(void)doAnimation{
    bikeMotion = [[DotAnimation alloc]initWithFrame:CGRectMake((*bikePathPoints)[0].x, (*bikePathPoints)[0].y, 8, 8)];
    [NSTimer scheduledTimerWithTimeInterval:0.07f target:self selector:@selector(backgroundAnimations) userInfo:nil repeats:YES];
}

-(void)backgroundAnimations{
    CGPoint position = [p position];
    cout << position.x << endl;
}

1 Ответ

2 голосов
/ 20 января 2012

Вы пробовали object.layer.anchorpoint? Вам нужно будет импортировать QuartzCore.

...