我正在尝试为从左到右在屏幕上移动的波浪设置动画,同时我希望它可以稍微向上和向下移动。这是代码:

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应用于y以使其自然波动

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)


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

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

10-09 07:43