swift - 尝试快速移动 x 和 y 字段中的图像

标签 swift animation

我正在尝试制作从左到右在屏幕上移动的波浪的动画,同时我希望它稍微上下移动。代码如下:

UIView.animateWithDuration(2.5, delay: 0,
        options: .Repeat | .Autoreverse, animations: {
            self.wavesImg.center.y += 50
            self.wavesImg.center.x -= self.wavesImg.image!.size.width/7
        }, completion: nil)

目前,它只执行最后一个动画,因此它只从左到右移动。我怎样才能让它上下移动?

最佳答案

为什么不直接对 y 应用 sin 来赋予它自然的波浪感

UIView.animateWithDuration(2.5, delay: 0,
    options: .Repeat | .Autoreverse, animations: {
        self.wavesImg.center.y += 50 * sin(self.wavesImg.center.x)  
        self.wavesImg.center.x -= self.wavesImg.image!.size.width/7
    }, completion: nil)

我不确定你想如何处理 sin 中的值,现在我将每个 x 值视为 1 弧度,因为 sin 函数采用弧度,但你可能想改变它以适合你的需要。 (也就是说,如果您希望波从 0 开始,然后在 x 为 10 时上升并返回到 0,您可以执行类似 sin((x/10) * PI) 的操作

关于swift - 尝试快速移动 x 和 y 字段中的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33178518/

相关文章:

ios - 如何在快速打印 NSDictionary 时打印中文而不是 unicode

ios - 使用 iOS 操作扩展将 PDF 导入自己的应用程序

swift - 我可以在 C 中定义不带参数的构造函数吗?

javascript - jQuery 动画被覆盖

iOS:重复动画 block 直到事件完成

ios - 多个 tableView reloadData()

javascript - 遮不住我的太阳动漫溢出

python - Matplotlib 电影中不使用 setData 的完整图形

c# - 更新 DataGridCell 的绑定(bind)值时创建动画

swift - 一个服务应该调用另一个服务还是应该获取它自己的数据