Skip to content

Commit f46cf06

Browse files
committed
ensure renderer and configuration are set on sampleLayer
`didSet` doesn't get called in the initializer, so the sampleLayer wouldn't get the same info until it gets updated. Using defer here (to call didSet) as opposed to calling the code in didSet directly just because I feel it looks cleaner ¯\_(ツ)_/¯ fixes #58
1 parent b3a955b commit f46cf06

File tree

1 file changed

+15
-0
lines changed

1 file changed

+15
-0
lines changed

Sources/DSWaveformImageViews/UIKit/WaveformLiveView.swift

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,20 +47,35 @@ public class WaveformLiveView: UIView {
4747
self.renderer = renderer
4848
super.init(frame: .zero)
4949
self.contentMode = .redraw
50+
51+
defer { // will call didSet to propagate to sampleLayer
52+
self.configuration = configuration
53+
self.renderer = renderer
54+
}
5055
}
5156

5257
public override init(frame: CGRect) {
5358
self.configuration = Self.defaultConfiguration
5459
self.renderer = LinearWaveformRenderer()
5560
super.init(frame: frame)
5661
contentMode = .redraw
62+
63+
defer { // will call didSet to propagate to sampleLayer
64+
self.configuration = Self.defaultConfiguration
65+
self.renderer = LinearWaveformRenderer()
66+
}
5767
}
5868

5969
required init?(coder: NSCoder) {
6070
self.configuration = Self.defaultConfiguration
6171
self.renderer = LinearWaveformRenderer()
6272
super.init(coder: coder)
6373
contentMode = .redraw
74+
75+
defer { // will call didSet to propagate to sampleLayer
76+
self.configuration = Self.defaultConfiguration
77+
self.renderer = LinearWaveformRenderer()
78+
}
6479
}
6580

6681
/// The sample to be added. Re-draws the waveform with the pre-existing samples and the new one.

0 commit comments

Comments
 (0)