这真令人困惑.有没有人有任何想法?
let viewHasMovedToRight == false //initially I want this to be false
然后
func moveViewToRight(sender: UIButton!) { if viewHasMovedToRight == false { viewHasMovedToRight == true; UIView.animateWithDuration( 0.75,animations: {},completion: { (value: Bool) in println(" moved") } ) } else { viewHasMovedToRight == false; UIView.animateWithDuration( 0.75,animations:{},completion:{ (value: Bool) in println("not moved") } ) } // println("move view") }
只调用第一个if.
我无法将值重新分配给true …
Obj-C现在用swift这么容易的东西是如此令人沮丧……
解决方法
你有两个问题.
一,你正在使用==(测试相等)你应该使用=(它指定一个值).二,您声明一个常量,然后尝试为它分配一个新值.你需要声明一个变量.
var viewHasMovedToRight = false ... viewHasMovedToRight = true
此外,如果条件更容易理解,大多数人会发现这种情况:
if !viewHasMovedToRight {
如果你要颠倒if子句的顺序,那就更简单了:
if viewHasMovedToRight { viewHasMovedToRight = false ... } else { viewHasMovedToRight = true ... }