Как хранить анимацию в obj-c?
У меня есть 2 метода в моем классе, и у каждого есть анимация. У меня вопрос, могу ли я сохранить эти анимации в одном массиве или что-то и ссылаться на них по beginAnimation:name? Если да, как я могу это сделать?
Спасибо за помощь
-(void)hideMenu{
[UIView beginAnimations:@"HIDE_MENU" context:nil];
[UIView setAnimationDuration:0.38];
[UIView setAnimationDelay:0.12];
[UIView setAnimationCurve:UIViewAnimationCurveEaseOut];
[UIView setAnimationBeginsFromCurrentState:YES];
self.frame = CGRectMake(0, -1 * self.frame.size.height, self.frame.size.width, self.frame.size.height);
[UIView commitAnimations];
}
-(void)showMenu{
[UIView beginAnimations:@"SHOW_MENU" context:nil];
[UIView setAnimationDuration:0.38];
[UIView setAnimationDelay:0.12];
[UIView setAnimationCurve:UIViewAnimationCurveEaseOut];
[UIView setAnimationBeginsFromCurrentState:YES];
self.frame = CGRectMake(0, 0, self.frame.size.width, self.frame.size.height);
[UIView commitAnimations];
}
-(void)handleShowMenu:(NSNotification*)note{
[self showMenu];
}
-(void)handleHideMenu:(NSNotification*)note{
[self hideMenu];
}
1 ответ
Вы не можете хранить анимации UIView, поскольку они не являются объектами. Даже с анимацией блоков API, представленной в 4.0, анимации - это просто действия, выполняемые статическими методами классов. Самое близкое, что вы можете сделать, это сохранить блоки и использовать их повторно, или просто делать то, что вы делаете, и сохранять совместимость с версиями iOS старше 4.0.
Если вы действительно хотите сохранить свои анимации как объекты, вам следует пропустить анимацию UIView и перейти немного ниже к Core Animation.