Добавление подпредставления через анимацию CATransiton.Как отменить анимацию / отменить ее правильно? - PullRequest
0 голосов
/ 15 февраля 2011

У меня следующий вид снизу.

- (void)add:(id)sender {


MyAddViewController *controller = [[MyAddViewController alloc] initWithNibName:@"MyAddViewController" bundle:nil];
//controller.delegate = self;

CATransition *transition = [CATransition animation];
transition.duration = 0.35;
transition.timingFunction = [CAMediaTimingFunction
    functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
transition.type = kCATransitionMoveIn;
transition.subtype = kCATransitionFromTop;
//NSLog(@"%s: self.view.window=%@", __func__, self.view.window);
UIView *containerView = controller.view;
[containerView.layer addAnimation:transition forKey:nil];

[self.view addSubview:controller.view];
   }

Работает хорошо. Моя проблема с избавлением от этого. Как изменить анимацию, чтобы она скользила вниз по экрану? Я создал кнопку для этого, но не могу получить правильный переход? Есть предложения?

1 Ответ

0 голосов
/ 15 февраля 2011

попробуйте анимацию UIView, может быть достаточно:

- (void)closeYourController{
   CGPoint initialCenter = controller.view.center;
   [UIView beginAnimations:@"animation" context:NULL];
     [UIView setAnimationDuration:0.35];
     [UIView setAnimationDelegate:self];
     controller.view.center = CGPointMake(initialCenter.x, initialCenter.y + 480); // to go down
     [UIView setAnimationDidStopSelector:@selector(aMethodToBeCalledAfterAnimationEnd:finished:context:)];
   [UIView commitAnimations];
}

- (void)aMethodToBeCalledAfterAnimationEnd:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context{
    [controller.view removeFromSuperView];
    //  [controller release]; //// ...if needed

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...