print и func call успешно оба раза, но мой фон и название меняются только при перезагрузке моего приложения и работают только 1 раз. Вот мой код:Почему бы не изменить свой фон и название после получения данных акселерометра? SWIFT
var motionManager = CMMotionManager()
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)
startMotionManager()
}
func startMotionManager() {
if motionManager.accelerometerAvailable {
motionManager.accelerometerUpdateInterval = 0.2
motionManager.startAccelerometerUpdatesToQueue(NSOperationQueue(), withHandler: {
[weak self] (data, error) in
print(data!.acceleration.z)
if(data!.acceleration.z > 0.8) {
self!.win()
print("Win")
}
if (data!.acceleration.z < -0.9){
self!.pass()
print("Pass")
}
return
})
}
}
func pass() {
print("passfunction")
self.testLabel.text = "PASS"
self.view.backgroundColor = UIColor.redColor()
}
func win() {
testLabel.text = "WIN"
view.backgroundColor = UIColor.greenColor()
}
}
Моя главная цель вызова функ Win при acceleration.z> 0,8, которые изменить название метку «Win» и вид фона на зеленый Если acceleration.z < -0.9 затем вызвать функцию Pass, которая меняет мой фон на красный и т. Д.
Спасибо за вашу помощь!
Убедитесь, что методы UIKit будут вызываться из основного потока! – CouchDeveloper