gpt4 book ai didi

ios - @synchronized [UIView animationWithDuration ...] 锁定结束?

转载 作者:行者123 更新时间:2023-11-28 20:05:34 24 4
gpt4 key购买 nike

@synchronized 会锁定到动画结束吗?

__weak typeof(sharedManager) weakManager = sharedManager;

^(CMDeviceMotion *motion, NSError *error)
{

@synchronized(weakManager)
{ ... some code
if (angle != sharedManager.angle)
{
if (sharedManager.isLocked) return;

sharedManager.locked = YES;

sharedManager.angle = angle;

CGAffineTransform transform = (angle == 0) ?
CGAffineTransformIdentity : CGAffineTransformMakeRotation(angle);
sharedManager.currentTransform = transform;

[UIView animateWithDuration:.25
animations:^
{
[weakManager.animatedViews setValue:[NSValue valueWithCGAffineTransform:transform]
forKey:@"transform"];

}
completion:^(BOOL finished)
{
weakManager.locked = NO;
}];
}
}
}];

最佳答案

没有。它只会等待方法调用的持续时间。实际的动画是异步发生的,不会影响锁。

我想如果你想要那种行为,你可以使用 NSRecursiveLock 并在动画的完成 block 中显式解锁,但这是一件很奇怪的事情。

关于ios - @synchronized [UIView animationWithDuration ...] 锁定结束?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22198711/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com