Code clean
This commit is contained in:
parent
07d8ef5d13
commit
8f225dda70
@ -8,66 +8,70 @@
|
||||
|
||||
import Foundation
|
||||
@objcMembers public class LabelsWithCircleProgressBar: Container {
|
||||
|
||||
|
||||
let progressBar = GraphView(frame: .zero)
|
||||
let leftLabel = Label(frame: .zero)
|
||||
let rightLabel = Label(frame: .zero)
|
||||
let leftLabelWidthConstant : CGFloat = 151.0
|
||||
let rightLabelWidthConstant : CGFloat = 84.0
|
||||
let progressBarTrailingConstant : CGFloat = -72.0
|
||||
// MARK: - MVMCoreViewProtocol
|
||||
let rightLabelLeadingAnchorConstant : CGFloat = 8.0
|
||||
|
||||
//-------------------------------------------------
|
||||
// MARK: - View Cycle
|
||||
//-------------------------------------------------
|
||||
open override func updateView(_ size: CGFloat) {
|
||||
super.updateView(size)
|
||||
progressBar.updateView(size)
|
||||
leftLabel.updateView(size)
|
||||
rightLabel.updateView(size)
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// MARK: - Setup
|
||||
//-------------------------------------------------
|
||||
open override func setupView() {
|
||||
super.setupView()
|
||||
guard leftLabel.superview == nil else {
|
||||
return
|
||||
return
|
||||
}
|
||||
let container = MVMCoreUICommonViewsUtility.commonView()
|
||||
addAndContain(container)
|
||||
container.addSubview(progressBar)
|
||||
container.addSubview(leftLabel)
|
||||
container.addSubview(rightLabel)
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// MARK: - Constraining
|
||||
//-------------------------------------------------
|
||||
self.translatesAutoresizingMaskIntoConstraints = false
|
||||
NSLayoutConstraint.activate([
|
||||
leftLabel.leadingAnchor.constraint(equalTo: container.leadingAnchor),
|
||||
leftLabel.topAnchor.constraint(equalTo: container.topAnchor),
|
||||
leftLabel.bottomAnchor.constraint(equalTo: container.bottomAnchor),
|
||||
leftLabel.widthAnchor.constraint(lessThanOrEqualToConstant: leftLabelWidthConstant)
|
||||
leftLabel.leadingAnchor.constraint(equalTo: container.leadingAnchor),
|
||||
leftLabel.topAnchor.constraint(equalTo: container.topAnchor),
|
||||
leftLabel.bottomAnchor.constraint(equalTo: container.bottomAnchor),
|
||||
leftLabel.widthAnchor.constraint(lessThanOrEqualToConstant: leftLabelWidthConstant)
|
||||
])
|
||||
|
||||
let rightLabelTrailing = rightLabel.trailingAnchor.constraint(equalTo: container.trailingAnchor)
|
||||
NSLayoutConstraint.activate([
|
||||
rightLabelTrailing,
|
||||
rightLabel.leadingAnchor.constraint(greaterThanOrEqualTo : progressBar.trailingAnchor, constant: 8.0),
|
||||
rightLabel.topAnchor.constraint(equalTo: container.topAnchor),
|
||||
rightLabel.bottomAnchor.constraint(equalTo: container.bottomAnchor),
|
||||
rightLabel.widthAnchor.constraint(lessThanOrEqualToConstant: rightLabelWidthConstant)
|
||||
])
|
||||
rightLabelTrailing,
|
||||
rightLabel.leadingAnchor.constraint(greaterThanOrEqualTo : progressBar.trailingAnchor, constant: rightLabelLeadingAnchorConstant),
|
||||
rightLabel.topAnchor.constraint(equalTo: container.topAnchor),
|
||||
rightLabel.bottomAnchor.constraint(equalTo: container.bottomAnchor),
|
||||
rightLabel.widthAnchor.constraint(lessThanOrEqualToConstant: rightLabelWidthConstant)
|
||||
])
|
||||
rightLabelTrailing.priority = .defaultHigh
|
||||
|
||||
NSLayoutConstraint.activate([
|
||||
progressBar.trailingAnchor.constraint(equalTo: container.trailingAnchor, constant:progressBarTrailingConstant),
|
||||
progressBar.topAnchor.constraint(equalTo: container.topAnchor),
|
||||
progressBar.bottomAnchor.constraint(equalTo: container.bottomAnchor),
|
||||
progressBar.trailingAnchor.constraint(equalTo: container.trailingAnchor, constant:progressBarTrailingConstant),
|
||||
progressBar.topAnchor.constraint(equalTo: container.topAnchor),
|
||||
progressBar.bottomAnchor.constraint(equalTo: container.bottomAnchor),
|
||||
])
|
||||
}
|
||||
|
||||
// MARK: - MVMCoreUIMoleculeViewProtocol
|
||||
open override func setWithJSON(_ json: [AnyHashable: Any]?, delegateObject: MVMCoreUIDelegateObject?, additionalData: [AnyHashable: Any]?) {
|
||||
super.setWithJSON(json, delegateObject: delegateObject, additionalData: additionalData)
|
||||
leftLabel.setWithJSON(json?.optionalDictionaryForKey("leftLabel"), delegateObject: delegateObject, additionalData: additionalData)
|
||||
rightLabel.setWithJSON(json?.optionalDictionaryForKey("rightLabel"), delegateObject: delegateObject, additionalData: additionalData)
|
||||
progressBar.setWithJSON(json?.optionalDictionaryForKey("progressBar"), delegateObject: delegateObject, additionalData: additionalData)
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// MARK: - MVMCoreUIMoleculeViewProtocol
|
||||
//-------------------------------------------------
|
||||
public override func setWithModel(_ model: MoleculeModelProtocol?, _ delegateObject: MVMCoreUIDelegateObject?, _ additionalData: [AnyHashable : Any]?) {
|
||||
super.setWithModel(model, delegateObject, additionalData)
|
||||
guard let model = model as? LabelsWithCircleProgressBarModel else { return }
|
||||
@ -75,8 +79,10 @@ import Foundation
|
||||
rightLabel.setWithModel(model.rightLabel, delegateObject, additionalData)
|
||||
progressBar.setWithModel(model.progressBar, delegateObject, additionalData)
|
||||
}
|
||||
// MARK:- ModelMoleculeViewProtocol
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// MARK: - MVMCoreUIMoleculeViewProtocol
|
||||
//-------------------------------------------------
|
||||
open override func reset() {
|
||||
super.reset()
|
||||
leftLabel.reset()
|
||||
@ -84,7 +90,7 @@ import Foundation
|
||||
progressBar.reset()
|
||||
}
|
||||
|
||||
public override class func estimatedHeight(forRow molecule: MoleculeModelProtocol?, delegateObject: MVMCoreUIDelegateObject?) -> CGFloat? {
|
||||
return 43
|
||||
}
|
||||
public override class func estimatedHeight(forRow molecule: MoleculeModelProtocol?, delegateObject: MVMCoreUIDelegateObject?) -> CGFloat? {
|
||||
return 43
|
||||
}
|
||||
}
|
||||
|
||||
@ -11,7 +11,6 @@ import Foundation
|
||||
public class LabelsWithCircleProgressBarModel:MoleculeModelProtocol {
|
||||
|
||||
public var backgroundColor: Color?
|
||||
|
||||
public static var identifier: String = "labelsWithCircleProgressBar"
|
||||
public var leftLabel: LabelModel
|
||||
public var rightLabel: LabelModel
|
||||
@ -22,15 +21,12 @@ public class LabelsWithCircleProgressBarModel:MoleculeModelProtocol {
|
||||
self.rightLabel = rightLabel
|
||||
self.progressBar = progressBar
|
||||
}
|
||||
|
||||
|
||||
private enum CodingKeys: String, CodingKey {
|
||||
case moleculeName
|
||||
case leftLabel
|
||||
case rightLabel
|
||||
case progressBar
|
||||
}
|
||||
|
||||
required public init(from decoder: Decoder) throws {
|
||||
let typeContainer = try decoder.container(keyedBy: CodingKeys.self)
|
||||
leftLabel = try typeContainer.decode(LabelModel.self, forKey: .leftLabel)
|
||||
@ -39,8 +35,6 @@ public class LabelsWithCircleProgressBarModel:MoleculeModelProtocol {
|
||||
progressBar.size = .small;
|
||||
progressBar.style = .unlimited;
|
||||
}
|
||||
|
||||
|
||||
public func encode(to encoder: Encoder) throws {
|
||||
var container = encoder.container(keyedBy: CodingKeys.self)
|
||||
try container.encode(LabelsWithCircleProgressBarModel.identifier, forKey: .moleculeName)
|
||||
@ -48,5 +42,4 @@ public class LabelsWithCircleProgressBarModel:MoleculeModelProtocol {
|
||||
try container.encode(rightLabel, forKey: .rightLabel)
|
||||
try container.encodeIfPresent(progressBar, forKey: .progressBar)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user