UIView:一个动画有多个变化

Posted

技术标签:

【中文标题】UIView:一个动画有多个变化【英文标题】:UIView: one animation with multiple changes 【发布时间】:2011-12-02 13:21:23 【问题描述】:

我需要在 UIView 上同时制作动画。我想同时改变大小和位置。我试试这段代码:

[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:1.0];
[UIView setAnimationBeginsFromCurrentState:NO];

[openingElement setFrame:elementFrame];

[UIView commitAnimations];

此代码有效,但 UIView 动画分两步(移动和调整大小后),我想一起做。 是否可以制作多个更改的动画?

【问题讨论】:

【参考方案1】:

可以在一个动画中进行多项更改。在 UIView 上,您可以同时对 alpha、bounds、frame、center、transform 和 backgroundColor 进行动画更改。

如果您对 frame 属性的动画有问题,请尝试为 center 和 bounds 设置动画。

[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:1.0];
[UIView setAnimationBeginsFromCurrentState:NO];

[openingElement setBounds:newBounds];
[openingElement setCenter:newCenter];

[UIView commitAnimations];

【讨论】:

【参考方案2】:

试试这个

[UIView setAnimationBeginsFromCurrentState:YES];

【讨论】:

以上是关于UIView:一个动画有多个变化的主要内容,如果未能解决你的问题,请参考以下文章

多个 UIView 的动画与 UIBezierPath

在 UIView 中为多个形状设置动画

使用 CoreAnimation 一次为多个 UIView 设置动画

动画中的多个 UIView

+[UIView transitionFromView:toView:...] 有多个视图

调用多个动画,一个接一个相同的UIView对象,不使用补全