[WIP] Call UI

This commit is contained in:
Isaac
2023-12-01 01:06:22 +04:00
parent 835278b9dc
commit 06e3841f23
22 changed files with 1204 additions and 480 deletions

View File

@@ -591,7 +591,7 @@ public struct Transition {
completion?(true)
case let .curve(duration, curve):
let previousValue: CATransform3D
if let presentation = layer.presentation() {
if layer.animation(forKey: "transform") != nil, let presentation = layer.presentation() {
previousValue = presentation.transform
} else {
previousValue = layer.transform
@@ -703,6 +703,33 @@ public struct Transition {
)
}
}
public func setZPosition(layer: CALayer, zPosition: CGFloat, delay: Double = 0.0, completion: ((Bool) -> Void)? = nil) {
if layer.zPosition == zPosition {
completion?(true)
return
}
switch self.animation {
case .none:
layer.zPosition = zPosition
layer.removeAnimation(forKey: "zPosition")
completion?(true)
case let .curve(duration, curve):
let previousZPosition = layer.presentation()?.opacity ?? layer.opacity
layer.zPosition = zPosition
layer.animate(
from: previousZPosition as NSNumber,
to: zPosition as NSNumber,
keyPath: "zPosition",
duration: duration,
delay: delay,
curve: curve,
removeOnCompletion: true,
additive: false,
completion: completion
)
}
}
public func animateScale(view: UIView, from fromValue: CGFloat, to toValue: CGFloat, delay: Double = 0.0, additive: Bool = false, completion: ((Bool) -> Void)? = nil) {
switch self.animation {