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