【问题标题】:How to store animations in obj-c?如何在obj-c中存储动画?
【发布时间】:2011-12-13 21:58:59
【问题描述】:

我的班级有 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];
}

【问题讨论】:

    标签: ios objective-c methods storage commitanimations


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2016-04-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多