Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/114.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Swift加速计数据don';更新UIT标签阴影_Ios_Xcode_Swift - Fatal编程技术网

Ios Swift加速计数据don';更新UIT标签阴影

Ios Swift加速计数据don';更新UIT标签阴影,ios,xcode,swift,Ios,Xcode,Swift,我想通过使用加速计数据改变UILabel的阴影位置。我已经成功地在控制台输出中看到了加速计数据,但阴影不想更新自身位置。我所拥有的只是应用程序启动时不同的阴影位置 我需要每秒钟或经常更新它 关于应用阴影位置的代码是: self.bigLabel.layer.shadowOffset = CGSize(width: (14 - data.acceleration.y*5), height: (14 - data.acceleration.z*5)) 我做错了什么 @IBOutlet weak v

我想通过使用加速计数据改变UILabel的阴影位置。我已经成功地在控制台输出中看到了加速计数据,但阴影不想更新自身位置。我所拥有的只是应用程序启动时不同的阴影位置

我需要每秒钟或经常更新它

关于应用阴影位置的代码是:

self.bigLabel.layer.shadowOffset = CGSize(width: (14 - data.acceleration.y*5), height: (14 - data.acceleration.z*5))
我做错了什么

@IBOutlet weak var bigLabel: UILabel!

override func viewDidLoad() {
    super.viewDidLoad()


    self.bigLabel.layer.shadowColor = UIColor(red: 61/255, green: 88/255, blue: 126/255, alpha: 0.8).CGColor
    self.bigLabel.layer.shadowRadius = 5
    self.bigLabel.layer.shadowOpacity = 1


    if motionManager.accelerometerAvailable{
        let queue = NSOperationQueue()


        motionManager.startAccelerometerUpdatesToQueue(queue, withHandler:
            {(data: CMAccelerometerData!, error: NSError!) in

                self.bigLabel.layer.shadowOffset = CGSize(width: (14 - data.acceleration.y*5), height: (14 - data.acceleration.z*5))

                println("X = \(data.acceleration.x)")
                println("Y = \(data.acceleration.y)")
                println("Z = \(data.acceleration.z)")

            }

        )
    } else {
        println("Accelerometer is not available")
    }

}

您正在更改图层的
阴影偏移量

尝试这样做:


self.biglab.shadowOffset=CGSize(宽度:(14-data.acceleration.y*5),高度:(14-data.acceleration.z*5))
您正在更改层的
阴影偏移量

尝试这样做:


self.biglab.shadowOffset=CGSize(宽度:(14-data.acceleration.y*5),高度:(14-data.acceleration.z*5))
您正在更改层的
阴影偏移量

尝试这样做:


self.biglab.shadowOffset=CGSize(宽度:(14-data.acceleration.y*5),高度:(14-data.acceleration.z*5))
您正在更改层的
阴影偏移量

尝试这样做:


self.bigLabel.shadowOffset=CGSize(宽度:(14-data.acceleration.y*5),高度:(14-data.acceleration.z*5))

问题是,您在后台队列上接收更新,除了主队列之外,无法更新UI元素。最简单的解决方案是,只需将传递给
motionManager的队列更改为主队列即可。startAccelerometerUpdatesToQueue

let queue = NSOperationQueue.mainQueue()

motionManager.startAccelerometerUpdatesToQueue(queue, withHandler: ...
然而,缔约国:

因为处理的事件可能以很高的速率到达,所以使用 不建议使用主操作队列


因此,您可能应该设置为默认值以外的其他值。当然,这取决于您的应用程序,但是像
1.0/30.0
这样的东西可能是一个很好的开始。

问题是,您在后台队列上接收更新,除了主队列之外,您无法从任何地方更新UI元素。最简单的解决方案是,只需将传递给
motionManager的队列更改为主队列即可。startAccelerometerUpdatesToQueue

let queue = NSOperationQueue.mainQueue()

motionManager.startAccelerometerUpdatesToQueue(queue, withHandler: ...
然而,缔约国:

因为处理的事件可能以很高的速率到达,所以使用 不建议使用主操作队列


因此,您可能应该设置为默认值以外的其他值。当然,这取决于您的应用程序,但是像
1.0/30.0
这样的东西可能是一个很好的开始。

问题是,您在后台队列上接收更新,除了主队列之外,您无法从任何地方更新UI元素。最简单的解决方案是,只需将传递给
motionManager的队列更改为主队列即可。startAccelerometerUpdatesToQueue

let queue = NSOperationQueue.mainQueue()

motionManager.startAccelerometerUpdatesToQueue(queue, withHandler: ...
然而,缔约国:

因为处理的事件可能以很高的速率到达,所以使用 不建议使用主操作队列


因此,您可能应该设置为默认值以外的其他值。当然,这取决于您的应用程序,但是像
1.0/30.0
这样的东西可能是一个很好的开始。

问题是,您在后台队列上接收更新,除了主队列之外,您无法从任何地方更新UI元素。最简单的解决方案是,只需将传递给
motionManager的队列更改为主队列即可。startAccelerometerUpdatesToQueue

let queue = NSOperationQueue.mainQueue()

motionManager.startAccelerometerUpdatesToQueue(queue, withHandler: ...
然而,缔约国:

因为处理的事件可能以很高的速率到达,所以使用 不建议使用主操作队列

因此,您可能应该设置为默认值以外的其他值。当然,这取决于您的应用程序,但是像
1.0/30.0
这样的东西可能是一个很好的开始