【问题标题】:How to animate imageview from off screen如何从屏幕外为图像视图设置动画
【发布时间】:2017-03-14 18:59:45
【问题描述】:

我有一个图像视图,我放在一个圆圈的视图控制器上。

我想从屏幕外开始该圈子并将其移动到我放置的位置。

制作动画的最佳方式是什么?

【问题讨论】:

    标签: ios objective-c animation


    【解决方案1】:

    试试这个;

    -(void)viewWillAppear {
        [UIView animateWithDuration:5
                              delay:5
                            options:UIViewAnimationOptionCurveEaseOut
                         animations:^{
                                 CGRect frame = view.frame;
                                 frame.origin.y = self.view.frame.size.height-200;
                                 frame.origin.x = 0;
                                 view.frame = frame;
                             }completion:^(BOOL finished) {}];
    }
    

    许多动画选项的 [UIViewAnimationOptions]

        UIViewAnimationOptionCurveEaseInOut,
        UIViewAnimationOptionCurveLinear,
        UIViewAnimationOptionTransitionFlipFromLeft,
        UIViewAnimationOptionTransitionCurlUp,
        UIViewAnimationOptionTransitionCrossDissolve,
        UIViewAnimationOptionTransitionFlipFromTop..
    

    【讨论】:

    • 我有一个简单的问题——我已经使用了代码并且圆圈在屏幕上移动了。但是没有动画。当视图控制器加载时,圆圈似乎已经在屏幕上移动。圆圈是从它应该在的位置平移而来的。
    • 增加延迟时间和动画时间!
    • 我确实将延迟和动画时间都增加到了 20000 并且它仍在显示后期动画。
    • 兄弟.. 保持简单 10 !没那么多:)
    • 我只使用大数字来确保动画不能快速运行。我将其更改为 10 并且圆圈仍在显示后期动画。抱歉-我对 iOS 很陌生 :(
    【解决方案2】:

    您想在屏幕外创建图像视图。如果您以这种方式在 Interface Builder 中进行设置,则最简单。您可以在屏幕上创建它,添加约束以将其放置在目标位置,记下值,然后更改约束的常量,以便将视图移出屏幕。

    然后控制拖拽约束到你的视图控制器并创建一个出口。

    要在屏幕上为图像视图设置动画,请将约束的常量值更改为上面提到的“屏幕上”值,然后从 UIView animateWithDuration 块内对视图调用 layoutIfNeeded()

    如果要在代码中添加图像视图,则需要将其添加到屏幕外,将其添加为子视图,然后触发 UIView 动画将其移回屏幕上。您可能还应该使用上述约束进行定位,尽管它变得更加复杂,因为您必须在代码中创建这些约束。

    【讨论】:

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