как анимировать UIView так же, как работает presentModalViewController (то есть [self presentModalViewController: child animated: YES];) - PullRequest
3 голосов
/ 29 февраля 2012

Я новичок в разработке для ios, сейчас я делаю анимацию в моем приложении. В моем приложении есть одно меню в нижней части главного экрана и две кнопки: одна для скрытия меню, а другая - для отображения меню. Мои потребности функция показа и скрытия меню работает как функция [self presentModalViewController:menuView animated:YES]; и [self dismissModalViewControllerAnimated:YES]; (т. е. нажмите кнопку «Показать», откройте меню «Вид» в нижней части основного окна и нажмите кнопку «Скрыть», переместитесь вниз по меню «Вид»). Я знаю основные анимации, такие как:

[UIView beginAnimations:@"ShowHideView" context:nil];

[UIView setAnimationCurve:UIViewAnimationOptionOverrideInheritedCurve];

[UIView setAnimationDuration:1.0];

[UIView setAnimationDelegate:self];
[menuView setAlpha:0];

[UIView commitAnimations];

Если кто-нибудь знает, пожалуйста, помогите мне.

1 Ответ

6 голосов
/ 29 февраля 2012

Когда вы нажимаете showMenuView, выполните следующие действия:

- (IBAction)showView:(id)sender 
{
    [self.view addSubview: menuView];
    CGRect rect = menuView.frame;
    rect.origin.y = 480;
    menuView.frame = rect;
    [UIView beginAnimations:@"ShowView" context:nil];
    [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
    [UIView setAnimationDuration:0.5]; 
    rect.origin.y = 0;
    menuView.frame = rect;
    [UIView commitAnimations];
}

И, чтобы скрыть,

- (IBAction)hideView:(id)sender 
{
    CGRect rect = menuView.frame;
    [UIView beginAnimations:@"HideView" context:nil];
    [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
    [UIView setAnimationDuration:0.5]; 
    [UIView setAnimationDelegate:self];
    [UIView setAnimationDidStopSelector:@selector(animationDidStop:finished:context:)];
    rect.origin.y = 480;
    menuView.frame = rect;
    [UIView commitAnimations];
}

- (void)animationDidStop:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context
{
    [menuView removeFromSuperview];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...