【问题标题】:Iphone sequential animation with setAnimationDelay带有 setAnimationDelay 的 iPhone 顺序动画
【发布时间】:2010-12-13 15:23:48
【问题描述】:

我正在尝试链接动画事件。我正在编写的工作应用程序有一个多项选择测验。首先,您选择多项选择答案。测验视图消失。然后标签(“正确”或“不正确”)淡入然后淡出。最后,测验再次淡出。这些事件由主视图控制器调用和处理。我知道我可以使用 setAnimationDelegate 和 setAnimationDidStopSelector 链接事件,但我认为简单地使用 setAnimationDelay 会更容易、更清晰,这样所有动画都有时间在下一个触发之前完成。

我制作的这个函数存在于包含“正确”“不正确”标签的类中。

- (void)showIncorrect:(float)duration withDelay:(float)delay{
labelView.text = @"Incorrect!";
labelView.textColor = [UIColor redColor];

[UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDelay:delay];
    [UIView setAnimationDuration:(duration/2)];
    self.alpha = 1.0;
[UIView commitAnimations];

[UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDelay:(duration/2+delay)];
    [UIView setAnimationDuration:(duration/2)];
    self.alpha = 0.0;
[UIView commitAnimations];

}

谁能告诉我为什么忽略第一个动画块?我尝试将一个动画块嵌套到另一个动画块中,但这也不起作用。

【问题讨论】:

    标签: iphone cocoa-touch iphone-sdk-3.0


    【解决方案1】:

    我遇到过类似的问题,似乎是 iPhone 正在优化同一功能中出现的绘图。

    您可以尝试将函数拆分并执行选择器。例如

    [self performSelector:@selector(hideMessage) withObject:self afterDelay:1.0];
    

    我已经使用了几次,效果很好。 如果您想查看有关制作出色游戏风格效果的优秀文章,请查看 iPhone 酷项目中的 Formic 示例代码。 Wolfgang 确实推动了非常令人愉悦的游戏风格效果的观点。

    Google 图书有,但总体而言,这本书有一些非常棒的技巧。

    这是谷歌图书链接: http://books.google.com/books?id=_9qtPLmQxf8C&pg=PA6&lpg=PA6&dq=wolfgang+ante+formic&source=bl&ots=-vxvV3oLap&sig=G0BLW1RpItws-fwmXDI3mIjje4U&hl=en&ei=tVnzSt-3MImEMpL_8OgF&sa=X&oi=book_result&ct=result&resnum=1&ved=0CAoQ6AEwAA#v=onepage&q=wolfgang%20ante%20formic&f=false

    丰富

    【讨论】:

      【解决方案2】:

      当您以这种方式制作动画时,您实际上是在立即设置相关值,并告诉屏幕上的动画以赶上新的现实。因此,您在第一个动画块中设置的任何值都将被有效地忽略,因为您已经用 alpha == 0 的事实覆盖了 alpha == 1 的事实。

      为了制作更复杂的动画,值得使用 CoreAnimation 构建和添加动画。这需要更多的工作,但您可以获得更多的控制权。

      在这种情况下,您想使用 CAKeyframeAnimation 的一个实例。您可能还想使用 CABasicAnimation 在新的测验视图中制作动画。您可以使用 CAAnimationGroup 来确保您添加的多个动画是同步的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-26
        • 1970-01-01
        相关资源
        最近更新 更多