Various fixes

This commit is contained in:
Ilya Laktyushin
2023-09-15 22:56:36 +04:00
parent b7e4fb3d57
commit 6f75478d99
13 changed files with 339 additions and 86 deletions

View File

@@ -72,6 +72,9 @@ public final class AudioWaveformComponent: Component {
var foregroundColor: UIColor
}
public final class CloneLayer: SimpleLayer {
}
private final class LayerImpl: SimpleLayer {
private var shimmerNode: ShimmerEffectNode?
private var shimmerMask: SimpleLayer?
@@ -158,6 +161,22 @@ public final class AudioWaveformComponent: Component {
}
}
}
weak var cloneLayer: CloneLayer? {
didSet {
if let cloneLayer = self.cloneLayer {
cloneLayer.contents = self.contents
}
}
}
override public var contents: Any? {
didSet {
if let cloneLayer = self.cloneLayer {
cloneLayer.contents = self.contents
}
}
}
}
override public static var layerClass: AnyClass {
@@ -224,6 +243,12 @@ public final class AudioWaveformComponent: Component {
self.statusDisposable?.dispose()
}
public var cloneLayer: CloneLayer? {
didSet {
(self.layer as! LayerImpl).cloneLayer = self.cloneLayer
}
}
@objc private func panGesture(_ recognizer: UIPanGestureRecognizer) {
var location = recognizer.location(in: self)
location.x -= self.bounds.minX
@@ -392,7 +417,7 @@ public final class AudioWaveformComponent: Component {
}
}
}
override public func draw(_ rect: CGRect) {
guard let component = self.component else {
return