我正在使用Xcode开发应用程序,并试图让一个圆圈更改它的x位置。我写了下面的代码无济于事,代码没有给我一个错误,它根本不起作用。任何帮助,将不胜感激。 我的代码如下。
func changeNotes() {
switch notesState {
case 1:
let animation = CABasicAnimation()
animation.keyPath = "transform.translate.x"
animation.fromValue = 668
animation.toValue = 55
animation.duration = 0.2
notesButton.layer.addAnimation(animation, forKey: "transformx")
notesState = 0
default:
let animation = CABasicAnimation()
animation.keyPath = "transform.translate.x"
animation.fromValue = 55
animation.toValue = 668
animation.duration = 0.2
notesButton.layer.addAnimation(animation, forKey: "transformx")
notesState++
任何帮助?
答案 0 :(得分:1)
let translateX = CABasicAnimation(keyPath: "position") // declare it out of your function inside your view controller class just below any IBOulets you may have
translateX.fromValue = NSValue(CGPoint: CGPointMake(668,notesButton.layer.position.y))
translateX.toValue = NSValue(CGPoint: CGPointMake(55,notesButton.layer.position.y))
translateX.duration = 0.2
notesButton.layer.addAnimation(translateX, forKey: "position")
修改强>
不需要在那里使用外壳开关。你可以这样试试:
let translateX = CABasicAnimation(keyPath: "position") // declare it out of your function inside your view controller class just below any IBOulets you may have
if notesButton.layer.position.x == 668 {
translateX.fromValue = NSValue(CGPoint: CGPointMake(668,notesButton.layer.position.y))
translateX.toValue = NSValue(CGPoint: CGPointMake(55,notesButton.layer.position.y))
notesButton.layer.position.x = 55
translateX.duration = 0.2
} else {
translateX.fromValue = NSValue(CGPoint: CGPointMake(55,notesButton.layer.position.y))
translateX.toValue = NSValue(CGPoint: CGPointMake(668,notesButton.layer.position.y))
notesButton.layer.position.x = 55
translateX.duration = 0.2
}
notesButton.layer.addAnimation(translateX, forKey: "position")