【发布时间】:2015-08-14 22:22:56
【问题描述】:
我正在尝试将视图从情节提要上的位置向上移动 100 像素。
如果随机生成的数字为 1,则标签变为未中奖。
如果随机生成的数字是 2,则标签会更改为他们中奖了。
我正在使用以下代码:
override func motionEnded(motion: UIEventSubtype,
withEvent event: UIEvent?) {
if motion == .MotionShake{
let randomNumber = arc4random_uniform(2) + 1
print(randomNumber)
if randomNumber == 1 {
labelOne.text = "Sorry!"
labelTwo.text = "You Have Not Won This Time"
labelThree.text = "Better Luck Tomorrow"
}
if randomNumber == 2 {
labelOne.text = "Winner!"
labelTwo.text = "1 x Shot Patron Cafe"
labelThree.text = "Show at the bar to claim."
}
let xPosition = stampView.frame.origin.x
//View will slide 20px up
let yPosition = stampView.frame.origin.y - 100
let height = stampView.frame.size.height
let width = stampView.frame.size.width
UIView.animateWithDuration(3.0, animations: {
self.stampView.frame = CGRectMake(xPosition, yPosition, height, width)
})
print("SHAKEN!")
}
}
我发现有时当我摇动设备时,动画会从原始位置下方 100px 开始并移回原位,而其他时候它会从最后一个位置向上移动 100px。
如何确保它始终从故事板上的原始位置移动?
【问题讨论】:
-
你在使用自动布局吗?
-
嗨,不,我发现如果我将文本更改移出功能,它似乎工作得非常愉快。不知道为什么!
-
可能在后台线程上执行了“motionEnded”。尝试将您的代码包装在主队列中。
-
让我知道这是否有效。