Make animation duration configurable.

This commit is contained in:
Xi Zhang 2024-07-11 17:22:11 -04:00
parent 021f4184a6
commit de60fdfaf9
2 changed files with 8 additions and 1 deletions

View File

@ -84,7 +84,7 @@ import UIKit
} }
// show circular progress view with animation. // show circular progress view with animation.
showProgressWithAnimation(duration: 0.5, value: Float(graphModel?.percent ?? 0) / 100) showProgressWithAnimation(duration: graphModel?.duration ?? 1.0, value: Float(graphModel?.percent ?? 0) / 100)
// show progress percentage label. // show progress percentage label.
showProgressPercentage() showProgressPercentage()

View File

@ -21,6 +21,7 @@ public class CircularProgressBarModel: MoleculeModelProtocol {
} }
public var diameter: CGFloat = 84 public var diameter: CGFloat = 84
public var lineWidth: CGFloat = 5 public var lineWidth: CGFloat = 5
public var duration : Double = 1.0
public var color: Color? public var color: Color?
public var trackColor: Color? public var trackColor: Color?
public var percent: Int? public var percent: Int?
@ -35,6 +36,7 @@ public class CircularProgressBarModel: MoleculeModelProtocol {
case size case size
case diameter case diameter
case lineWidth case lineWidth
case duration
case color case color
case trackColor case trackColor
case percent case percent
@ -59,6 +61,10 @@ public class CircularProgressBarModel: MoleculeModelProtocol {
self.lineWidth = lineWidth self.lineWidth = lineWidth
} }
if let duration = try typeContainer.decodeIfPresent(Double.self, forKey: .duration) {
self.duration = duration
}
color = try typeContainer.decodeIfPresent(Color.self, forKey: .color) color = try typeContainer.decodeIfPresent(Color.self, forKey: .color)
trackColor = try typeContainer.decodeIfPresent(Color.self, forKey: .trackColor) trackColor = try typeContainer.decodeIfPresent(Color.self, forKey: .trackColor)
percent = try typeContainer.decodeIfPresent(Int.self, forKey: .percent) percent = try typeContainer.decodeIfPresent(Int.self, forKey: .percent)
@ -73,6 +79,7 @@ public class CircularProgressBarModel: MoleculeModelProtocol {
try container.encode(size, forKey: .size) try container.encode(size, forKey: .size)
try container.encode(diameter, forKey: .diameter) try container.encode(diameter, forKey: .diameter)
try container.encode(lineWidth, forKey: .lineWidth) try container.encode(lineWidth, forKey: .lineWidth)
try container.encode(duration, forKey: .duration)
try container.encodeIfPresent(trackColor, forKey: .trackColor) try container.encodeIfPresent(trackColor, forKey: .trackColor)
try container.encodeIfPresent(color, forKey: .color) try container.encodeIfPresent(color, forKey: .color)
try container.encodeIfPresent(percent, forKey: .percent) try container.encodeIfPresent(percent, forKey: .percent)