0

我的班级有两种方法,每种方法都有一个动画。我的问题是,我可以将这些动画存储在一个数组或其他东西中并通过 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];
}
4

1 回答 1

1

您不能存储 UIView 动画,因为它们不是对象。即使在 4.0 中引入了块动画 API,动画仍然只是静态类方法执行的动作。您可以做的最接近的事情是存储块并重复使用它们,或者只是做您正在做的事情并保持与 4.0 之前的 iOS 版本的兼容性。

如果您真的想将动画存储为对象,您应该跳过 UIView 动画并稍微降低到Core Animation

于 2011-12-13T23:37:05.900 回答