iOS 动画块:忽略动画命令

Posted

技术标签:

【中文标题】iOS 动画块:忽略动画命令【英文标题】:iOS animation block: ignores animation commands 【发布时间】:2012-05-15 16:27:30 【问题描述】:

我会尽量简化问题。

我有一个动画块来为两个 UIViewImage 设置动画。

在开始之前,我先取 UIImageViews 的矩形:

我改变了:origin.x+=40 对于两者

在动画块中,我将这两个 UIImage 视图的框架设置为修改后的矩形。

有效。

现在有件事了。对于一个矩形,我还将更改 size.width-= 20 使其宽度缩小一点。

结果:发生了收缩和移动,但第二个 UIImage 视图不再移动。就好像对元素的宽度/高度进行动画处理,取消了动画块中的所有其他动画。

我不知道为什么。我已经在这两天了,但无济于事。有没有人遇到过这样的事情?我在 ios 5.1 Xcode 4.3.2

【问题讨论】:

你能显示代码吗? 在我看来你的代码有问题。尝试在你的动画块中添加一个断点,看看矩形是如何变化的。 【参考方案1】:

尽管 frame 属性可以设置动画,但我们不推荐使用它来设置视图的动画。

相反,我建议您应用 CGAffineTransform 来转换 UIImageView 的属性。

这是文档链接:https://developer.apple.com/library/mac/#documentation/graphicsimaging/reference/CGAffineTransform/Reference/reference.html

在您的情况下,您可以对图像视图应用缩放和平移变换。请记住,如果您想应用两个转换,则必须先将它们合并为一个。

【讨论】:

太棒了!这正是我想要的。我用 CGAffineTransform 定义了我的所有变换,当动画时,所有变换都完美地协同工作。移动、旋转、缩放等。完美!

以上是关于iOS 动画块:忽略动画命令的主要内容,如果未能解决你的问题,请参考以下文章

Safari 忽略关键帧动画的内联样式

CSS不透明度忽略过渡时间

UIView 动画忽略持续时间

UIButton 动画忽略 Swift 中的目标选择器

SwiftUI onAppear:动画持续时间被忽略

嵌入时忽略 SwiftUI 堆叠属性动画