jor*_*mol 7 ios objective-c-blocks setneedsdisplay
我正在CMMotionManager用于检索加速度计数据.问题是加速度计数据会定期打印,实例变量会在视图中更改,但视图不会重新绘制.我已经检查过这hv不是零,而且一切都被吸引住了.在块中调用setNeedsDisplay是否有问题?
-(void) viewDidAppear:(BOOL) animated
{
[super viewDidAppear: animated];
[motionManager startAccelerometerUpdatesToQueue:motionQueue withHandler:
^(CMAccelerometerData *accelerometerData, NSError *error)
{
NSLog(@"%@",accelerometerData);
HypnosisView *hv = (HypnosisView *) [self view];
hv.xShift = 10.0 * accelerometerData.acceleration.x;
hv.yShift = -10.0 * accelerometerData.acceleration.y;
[hv setNeedsDisplay];
}];
}
Run Code Online (Sandbox Code Playgroud)
coc*_*ero 12
这是因为您在与主线程不同的线程上调用UI方法.
将其添加到您的块:
dispatch_async(dispatch_get_main_queue(), ^{
[hv setNeedsDisplay];
});
Run Code Online (Sandbox Code Playgroud)
请记住,必须从主线程调用任何处理用户界面元素的方法.
| 归档时间: |
|
| 查看次数: |
2156 次 |
| 最近记录: |