我正在尝试动画一个从左到右移动屏幕的波动,同时我希望它能够轻微上下移动。下面是代码:
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)
目前,它只执行最后一个动画,所以它只从左向右移动。我怎样才能让它上下移动?
答案 0 :(得分:1)
为什么不直接将罪应用于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)