如何从屏幕外动画imageview

时间:2017-03-14 18:59:46

标签: ios objective-c animation

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

我想从屏幕外开始播放该圆圈并将其移至我已放置的位置。

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

2 个答案:

答案 0 :(得分: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..

答案 1 :(得分:0)

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

然后控制 - 将约束拖动到视图控制器中并为其创建一个插座。

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

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