Added bounds transition

This commit is contained in:
Ilya Laktyushin 2019-03-08 18:33:53 +03:00
parent c278cf193b
commit ca80cc40dc

View File

@ -91,6 +91,28 @@ public extension ContainedViewLayoutTransition {
} }
} }
func updateBounds(layer: CALayer, bounds: CGRect, force: Bool = false, completion: ((Bool) -> Void)? = nil) {
if layer.bounds.equalTo(bounds) && !force {
completion?(true)
} else {
switch self {
case .immediate:
layer.bounds = bounds
if let completion = completion {
completion(true)
}
case let .animated(duration, curve):
let previousBounds = layer.bounds
layer.bounds = bounds
layer.animateBounds(from: previousBounds, to: bounds, duration: duration, timingFunction: curve.timingFunction, force: force, completion: { result in
if let completion = completion {
completion(result)
}
})
}
}
}
func updatePosition(node: ASDisplayNode, position: CGPoint, completion: ((Bool) -> Void)? = nil) { func updatePosition(node: ASDisplayNode, position: CGPoint, completion: ((Bool) -> Void)? = nil) {
if node.position.equalTo(position) { if node.position.equalTo(position) {
completion?(true) completion?(true)