// // View.swift // MVMCoreUI // // Created by Scott Pfeil on 10/23/19. // Copyright © 2019 Verizon Wireless. All rights reserved. // import UIKit @objcMembers open class View: UIView, ModelMoleculeViewProtocol { open var json: [AnyHashable: Any]? open var model: MoleculeProtocol? private var initialSetupPerformed = false public override init(frame: CGRect) { super.init(frame: .zero) initialSetup() } public init() { super.init(frame: .zero) initialSetup() } public required init?(coder: NSCoder) { super.init(coder: coder) initialSetup() } public func initialSetup() { if !initialSetupPerformed { initialSetupPerformed = true setupView() } } public func nameForReuse(_ model: MoleculeProtocol?, _ delegateObject: MVMCoreUIDelegateObject?) -> String? { return model?.moleculeName } open func setWithModel(_ model: MoleculeProtocol?, _ delegateObject: MVMCoreUIDelegateObject?, _ additionalData: [AnyHashable: Any]?) { self.model = model if let backgroundColor = model?.backgroundColor { self.backgroundColor = backgroundColor.uiColor } } } extension View: MVMCoreViewProtocol { open func updateView(_ size: CGFloat) {} /// Will be called only once. open func setupView() { translatesAutoresizingMaskIntoConstraints = false insetsLayoutMarginsFromSafeArea = false } } extension View: MVMCoreUIMoleculeViewProtocol { open func setWithJSON(_ json: [AnyHashable : Any]?, delegateObject: MVMCoreUIDelegateObject?, additionalData: [AnyHashable : Any]?) { self.json = json if let backgroundColorString = json?.optionalStringForKey(KeyBackgroundColor) { backgroundColor = UIColor.mfGet(forHex: backgroundColorString) } } open func reset() { backgroundColor = .clear } open func setAsMolecule() { } }