【问题标题】:IOS app switching animation "A" with animation "B" in the same placeIOS app切换动画“A”与动画“B”在同一个地方
【发布时间】:2012-09-18 15:36:20
【问题描述】:

我有 2 个动画。应用程序加载时的第一个,第二个将保持用户体验的其余部分。

简而言之,这就是我想做的事情

1) 应用加载时加载的动画“A”。 2)然后我想隐藏动画“A”并将其替换为相同坐标上的动画“B” 3) 让动画“B”在任何其他时间或以 30 秒或 45 秒的间隔播放

动画A

[UIView animateWithDuration:2.5 
                      delay:2.0 
                    options:UIViewAnimationCurveEaseIn
                 animations:^{[buhoButton setFrame:CGRectMake(91, 185, 130, 130)];}completion:nil];

动画B

animation.animationImages = [NSArray arrayWithObjects:[UIImage imageNamed:@"Buho128x128_0.png"],
                                  [UIImage imageNamed:@"Buho128x128_1.png"],
                                  [UIImage imageNamed:@"Buho128x128_2.png"],
                                  [UIImage imageNamed:@"Buho128x128_3.png"],
                                  [UIImage imageNamed:@"Buho128x128_4.png"],
                                  [UIImage imageNamed:@"Buho128x128_3.png"],
                                  [UIImage imageNamed:@"Buho128x128_2.png"],
                                  [UIImage imageNamed:@"Buho128x128_1.png"],
                                  [UIImage imageNamed:@"Buho128x128_0.png"], nil];
[animation setAnimationRepeatCount:-1];
animation.animationDuration = 1;
[animation startAnimating];

这可能吗?

【问题讨论】:

    标签: iphone objective-c ios xcode ios5


    【解决方案1】:

    尝试将动画B的代码放入动画A的完成块中:

    [UIView animateWithDuration:2.5 
                      delay:2.0 
                    options:UIViewAnimationCurveEaseIn
                 animations:^{[buhoButton setFrame:CGRectMake(91, 185, 130, 130)];}
                 completion:^(BOOL finished){/*Animation B code here*/;}
    ];
    

    【讨论】:

    • 在 A 完成后开始动画 B。现在,我面临着如何隐藏动画 A 一次完成,所以只有动画 B 留在后面。
    • 动画A完成后要隐藏按钮吗?如果是这样,设置 buhoButton.hidden = YES;在完成块上。
    • 好吧,现在我遇到了另一个问题。是否可以制作和动画可点击?我设法让所有动画 a 和 b aling 和一个在另一个完成后开始,但现在我怎样才能让 animation.animationImages 可点击。顺便说一句,感谢您的所有帮助,我从这些问题中学到了很多东西。非常感谢。
    【解决方案2】:

    如果您想控制动画 B 何时触发,您可以使用 CABAsicAnimation,其中 removedOnCompletion = YES 用于动画 A(放置在您的 viewDidLoad 中),并且 removedOnCompletion = NO 用于动画 B(放置在处理您的触发事件的位置)。

    【讨论】:

    • 你有一个例子或一些片段来看看我会如何走这条路吗?
    • 这里是 Apple 的 MoveMe 示例代码中的一个示例: CABasicAnimation *transformAnimation = [CABasicAnimation animationWithKeyPath:@"transform"]; transformAnimation.removedOnCompletion = YES; transformAnimation.duration = animationDuration;
    猜你喜欢
    • 1970-01-01
    • 2019-04-13
    • 2021-07-14
    • 1970-01-01
    • 1970-01-01
    • 2016-11-29
    • 2017-08-26
    • 2017-09-23
    • 2021-03-08
    相关资源
    最近更新 更多