Animation menu improvements

This commit is contained in:
Ilya Laktyushin 2022-03-09 15:50:08 +04:00
parent c7c46e23b0
commit 56115402e1
2 changed files with 25 additions and 13 deletions

View File

@ -13,6 +13,7 @@ swift_library(
"//submodules/Display:Display",
"//submodules/AsyncDisplayKit:AsyncDisplayKit",
"//submodules/LegacyComponents:LegacyComponents",
"//submodules/SSignalKit/SwiftSignalKit:SwiftSignalKit",
],
visibility = [
"//visibility:public",

View File

@ -3,6 +3,7 @@ import UIKit
import Display
import AsyncDisplayKit
import LegacyComponents
import SwiftSignalKit
private final class RadialProgressContentCancelNodeParameters: NSObject {
let color: UIColor
@ -159,10 +160,14 @@ private final class RadialProgressContentSpinnerNode: ASDisplayNode {
}
}
private var hierarchyVersion: Int = 0
override func willEnterHierarchy() {
super.willEnterHierarchy()
if self.animateRotation {
self.hierarchyVersion += 1
if self.layer.animation(forKey: "progressRotation") == nil {
let basicAnimation = CABasicAnimation(keyPath: "transform.rotation.z")
basicAnimation.duration = 1.5
var fromValue = Float.pi + 0.58
@ -178,13 +183,19 @@ private final class RadialProgressContentSpinnerNode: ASDisplayNode {
self.layer.add(basicAnimation, forKey: "progressRotation")
}
}
}
override func didExitHierarchy() {
super.didExitHierarchy()
if self.animateRotation {
let version = self.hierarchyVersion
Queue.mainQueue().after(0.1, {
if self.hierarchyVersion == version {
self.layer.removeAnimation(forKey: "progressRotation")
}
})
}
}
}