Jac*_* So 4 asynchronous objective-c uiview ios objective-c-blocks
我想要更好地理解这个话题.让我们说我想做一些非常酷的动画,如下所示
- (void)coolAnimation
{
[UIView animateWithDuration: some duration
animations:^{ some animation }];
}
Run Code Online (Sandbox Code Playgroud)
由于它是一个动画块,它会自动添加到main_queue吗?或者为了最佳实践,我应该始终将UI更新添加到main_queue中,如下所示.
dispatch_async(dispatch_get_main_queue(), ^{
[self coolAnimation];
});
Run Code Online (Sandbox Code Playgroud)
Ian*_*ald 11
无论您在何处调用,块的内容都在主线程上执行[UIView animateWithDuration:animations:]
.最好让操作系统运行你的动画; 动画线程不会阻塞主线程 - 只有动画块本身.
在一个非常高级的手工波形视图中,[UIView animateWithDuration:animations:]
评估您的块并确定其中每个可动画值的函数.操作系统有一个动画线程,它用作帧计时器,然后在每个刻度线上,它将主线程上的更新发送到您的可动画属性及其进度值.(您可以在presentationLayer上查看这些值的当前状态.)
归档时间: |
|
查看次数: |
4503 次 |
最近记录: |