这实在令人困惑。有人有什么想法吗?
let viewHasMovedToRight == false //initially I want this to be false
then
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
条件更容易理解:
if !viewHasMovedToRight {
如果你把你的顺序颠倒一下,那就更简单了if
条款:
if viewHasMovedToRight {
viewHasMovedToRight = false
...
} else {
viewHasMovedToRight = true
...
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)