所以我有一个标签,使用NSTimer
每秒计数1。我创建了一个有一些移动UIImage
的应用程序。但是,每次计时器计数一次时,视图似乎重新加载,UIImage
s返回其原始位置。此外,UIImage
不是我将它们放在故事板中的位置(我将它们放在视图之外,这样它们就可以向内移动,但是当我启动应用程序时,它只是在那里显示它们。它们只是移动但是只有一秒钟,然后回到原来的位置)。相同的代码在iPhone上工作正常,但在iPad上无法正常工作。我认为它与约束有关,因为代码是相同的。这是计时器代码:
func counting() {
timerCount = timerCount + 1
timerLabel.text = "\(timerCount)"
}
override func viewDidLoad() {
super.viewDidLoad()
timer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: Selector("counting"), userInfo: nil, repeats: true)
// Do any additional setup after loading the view, typically from a override nib.
}
这是移动我的UIImages的代码:
func MoveWalls() {
FirstTimer = NSTimer.scheduledTimerWithTimeInterval(0.07, target: self, selector: Selector("FirstMoving"), userInfo: nil, repeats: true)
SecondTimer = NSTimer.scheduledTimerWithTimeInterval(0.007, target: self, selector:
Selector("SecondMoving"), userInfo: nil, repeats:true)
ThirdTimer = NSTimer.scheduledTimerWithTimeInterval(0.006, target: self, selector:
Selector("ThirdMoving"), userInfo: nil, repeats:true)
FourthTimer = NSTimer.scheduledTimerWithTimeInterval(0.005, target: self, selector:
Selector("FourthMoving"), userInfo: nil, repeats:true)
}
func FirstMoving() {
First.center = CGPointMake(First.center.x + 1, First.center.y)
}
func SecondMoving() {
Second.center = CGPointMake(Second.center.x - 1, Second.center.y)
}
func ThirdMoving() {
ThirdMoving.center = CGPointMake(Third.center.x, Third.center.y + 1)
}
func FourthMoving() {
Fourth.center = CGPointMake(Fourth.center.x, Fourth.center.y 1)
}
我的约束:
开始和结束游戏的两个按钮(水平居中)。
四个UIImages(尺寸比率)
计时器(左上角),由于某种原因,每次计数都会重置视图。
答案 0 :(得分:0)
我遇到了完全相同的问题。我通过为每个可移动视图添加此代码来解决它:
override func viewDidLoad() {
super.viewDidLoad()
self.imageView.translatesAutoresizingMaskIntoConstraints = true
self.imageView2.translatesAutoresizingMaskIntoConstraints = true
}