From 52186bf0898a00240b646c7ea8a21f2af2ea79e8 Mon Sep 17 00:00:00 2001 From: panxi Date: Thu, 12 Dec 2019 17:22:26 -0500 Subject: [PATCH] add protocol func into view --- MVMCoreUI.xcodeproj/project.pbxproj | 2 +- MVMCoreUI/Atoms/Views/CaretView.swift | 2 +- MVMCoreUI/Atoms/Views/DashLine.swift | 2 +- MVMCoreUI/Atoms/Views/DashLineModel.swift | 7 ++-- MVMCoreUI/BaseClasses/View.swift | 4 +++ MVMCoreUI/Molecules/HeadlineBodyButton.swift | 4 +-- .../SwitchMolecules/HeadlineBodySwitch.swift | 2 +- .../HeadlineBody.swift | 35 ++++++++++--------- .../HeadlineBodyModel.swift | 4 +-- 9 files changed, 34 insertions(+), 28 deletions(-) rename MVMCoreUI/{Models/Molecules => Molecules/VerticalCombinationViews}/HeadlineBodyModel.swift (74%) diff --git a/MVMCoreUI.xcodeproj/project.pbxproj b/MVMCoreUI.xcodeproj/project.pbxproj index 0ff03255..61ee1780 100644 --- a/MVMCoreUI.xcodeproj/project.pbxproj +++ b/MVMCoreUI.xcodeproj/project.pbxproj @@ -577,7 +577,6 @@ 01EB368B23609801006832FA /* MoleculeStackModel.swift */, 01EB368C23609801006832FA /* HeaderModel.swift */, 012A88EB238F084D00FE3DA1 /* FooterModel.swift */, - 01EB368D23609801006832FA /* HeadlineBodyModel.swift */, 017BEB3F23620A230024EF95 /* TextFieldModel.swift */, 017BEB4123620AD20024EF95 /* FormModelProtocol.swift */, 017BEB7A236763000024EF95 /* LineModel.swift */, @@ -664,6 +663,7 @@ isa = PBXGroup; children = ( D2A638FC22CA98280052ED1F /* HeadlineBody.swift */, + 01EB368D23609801006832FA /* HeadlineBodyModel.swift */, D22479952316AF6D003FCCF9 /* HeadlineBodyTextButton.swift */, D27CD40F2339057800C1DC07 /* EyebrowHeadlineBodyLink.swift */, ); diff --git a/MVMCoreUI/Atoms/Views/CaretView.swift b/MVMCoreUI/Atoms/Views/CaretView.swift index f34ab776..3a2c5561 100644 --- a/MVMCoreUI/Atoms/Views/CaretView.swift +++ b/MVMCoreUI/Atoms/Views/CaretView.swift @@ -99,7 +99,7 @@ open class CaretView: View { //------------------------------------------------------ // Default values for view. - @objc open func setAsMolecule() { + @objc open override func setAsMolecule() { defaultState() } diff --git a/MVMCoreUI/Atoms/Views/DashLine.swift b/MVMCoreUI/Atoms/Views/DashLine.swift index 595c7605..52ed9a65 100644 --- a/MVMCoreUI/Atoms/Views/DashLine.swift +++ b/MVMCoreUI/Atoms/Views/DashLine.swift @@ -64,7 +64,7 @@ open class DashLine: View { //------------------------------------------------------ // Default values for view. - @objc open func setAsMolecule() { + @objc open override func setAsMolecule() { backgroundColor = .clear isHidden = false } diff --git a/MVMCoreUI/Atoms/Views/DashLineModel.swift b/MVMCoreUI/Atoms/Views/DashLineModel.swift index 3ba46186..79367f35 100644 --- a/MVMCoreUI/Atoms/Views/DashLineModel.swift +++ b/MVMCoreUI/Atoms/Views/DashLineModel.swift @@ -12,9 +12,12 @@ import Foundation public static var identifier: String { get { return "dashLine" } } - public var moleculeName: String = "" public var backgroundColor: String? - public var dashColor: String = "" + public var dashColor: String public var isHidden: Bool? + + public init(dashColor: String) { + self.dashColor = dashColor + } } diff --git a/MVMCoreUI/BaseClasses/View.swift b/MVMCoreUI/BaseClasses/View.swift index de76f739..ec029b96 100644 --- a/MVMCoreUI/BaseClasses/View.swift +++ b/MVMCoreUI/BaseClasses/View.swift @@ -66,5 +66,9 @@ extension View: MVMCoreUIMoleculeViewProtocol { open func reset() { backgroundColor = .clear } + + open func setAsMolecule() { + + } } diff --git a/MVMCoreUI/Molecules/HeadlineBodyButton.swift b/MVMCoreUI/Molecules/HeadlineBodyButton.swift index 87efc9b6..02852d51 100644 --- a/MVMCoreUI/Molecules/HeadlineBodyButton.swift +++ b/MVMCoreUI/Molecules/HeadlineBodyButton.swift @@ -9,7 +9,7 @@ import UIKit -@objcMembers open class HeadlineBodyButton: ViewConstrainingView { +@objcMembers open class HeadlineBodyButton: View { //------------------------------------------------------ // MARK: - Outlets //------------------------------------------------------ @@ -33,7 +33,7 @@ import UIKit // MARK: - Initialization //------------------------------------------------------ - public init() { + public override init() { super.init(frame: .zero) } diff --git a/MVMCoreUI/Molecules/LeftRightViews/SwitchMolecules/HeadlineBodySwitch.swift b/MVMCoreUI/Molecules/LeftRightViews/SwitchMolecules/HeadlineBodySwitch.swift index 20da726b..7e5fcda8 100644 --- a/MVMCoreUI/Molecules/LeftRightViews/SwitchMolecules/HeadlineBodySwitch.swift +++ b/MVMCoreUI/Molecules/LeftRightViews/SwitchMolecules/HeadlineBodySwitch.swift @@ -59,7 +59,7 @@ import UIKit return 30 } - open func setAsMolecule() { + open override func setAsMolecule() { headlineBody.setAsMolecule() (mvmSwitch as MVMCoreUIMoleculeViewProtocol).setAsMolecule?() headlineBody.styleListItem() diff --git a/MVMCoreUI/Molecules/VerticalCombinationViews/HeadlineBody.swift b/MVMCoreUI/Molecules/VerticalCombinationViews/HeadlineBody.swift index cc313d59..a70b106d 100644 --- a/MVMCoreUI/Molecules/VerticalCombinationViews/HeadlineBody.swift +++ b/MVMCoreUI/Molecules/VerticalCombinationViews/HeadlineBody.swift @@ -8,7 +8,7 @@ import UIKit -open class HeadlineBody: ViewConstrainingView, ModelMoleculeViewProtocol { +open class HeadlineBody: View { let headlineLabel = Label.commonLabelH2(true) let messageLabel = Label.commonLabelB2(true) var spaceBetweenLabelsConstant = PaddingTwo @@ -81,7 +81,7 @@ open class HeadlineBody: ViewConstrainingView, ModelMoleculeViewProtocol { let view = MVMCoreUICommonViewsUtility.commonView() addSubview(view) - pinView(toSuperView: view) + NSLayoutConstraint.constraintPinSubview(toSuperview: view) view.addSubview(headlineLabel) view.addSubview(messageLabel) @@ -119,9 +119,9 @@ open class HeadlineBody: ViewConstrainingView, ModelMoleculeViewProtocol { } } - public func setWithModel(_ model: MoleculeProtocol?, _ delegateObject: MVMCoreUIDelegateObject?, _ additionalData: [String : AnyHashable]?) { + public override func setWithModel(_ model: MoleculeProtocol?, _ delegateObject: MVMCoreUIDelegateObject?, _ additionalData: [String : AnyHashable]?) { - setUpWithModel(model, delegateObject, additionalData) + super.setWithModel(model, delegateObject, additionalData) guard let headlineBodyModel = model as? HeadlineBodyModel else { return } @@ -131,25 +131,26 @@ open class HeadlineBody: ViewConstrainingView, ModelMoleculeViewProtocol { headlineLabel.setWithModel(headlineBodyModel.headline, delegateObject, additionalData) messageLabel.setWithModel(headlineBodyModel.body, delegateObject, additionalData) } -// // MARK: - MVMCoreUIMoleculeViewProtocol -// open override func setWithJSON(_ json: [AnyHashable: Any]?, delegateObject: MVMCoreUIDelegateObject?, additionalData: [AnyHashable: Any]?) { -// super.setWithJSON(json, delegateObject: delegateObject, additionalData: additionalData) -// -// style(with: json?.optionalStringForKey("style")) -// -// let headlineJSON = json?.optionalDictionaryForKey("headline") -// headlineLabel.setWithJSON(headlineJSON, delegateObject: delegateObject, additionalData: additionalData) -// -// let bodyJSON = json?.optionalDictionaryForKey("body") -// messageLabel.setWithJSON(bodyJSON, delegateObject: delegateObject, additionalData: additionalData) -// } + + // MARK: - MVMCoreUIMoleculeViewProtocol + open override func setWithJSON(_ json: [AnyHashable: Any]?, delegateObject: MVMCoreUIDelegateObject?, additionalData: [AnyHashable: Any]?) { + super.setWithJSON(json, delegateObject: delegateObject, additionalData: additionalData) + + style(with: json?.optionalStringForKey("style")) + + let headlineJSON = json?.optionalDictionaryForKey("headline") + headlineLabel.setWithJSON(headlineJSON, delegateObject: delegateObject, additionalData: additionalData) + + let bodyJSON = json?.optionalDictionaryForKey("body") + messageLabel.setWithJSON(bodyJSON, delegateObject: delegateObject, additionalData: additionalData) + } open override func reset() { super.reset() stylePageHeader() } - public override class func estimatedHeight(forRow json: [AnyHashable : Any]?, delegateObject: MVMCoreUIDelegateObject?) -> CGFloat { + public class func estimatedHeight(forRow json: [AnyHashable : Any]?, delegateObject: MVMCoreUIDelegateObject?) -> CGFloat { return 58 } } diff --git a/MVMCoreUI/Models/Molecules/HeadlineBodyModel.swift b/MVMCoreUI/Molecules/VerticalCombinationViews/HeadlineBodyModel.swift similarity index 74% rename from MVMCoreUI/Models/Molecules/HeadlineBodyModel.swift rename to MVMCoreUI/Molecules/VerticalCombinationViews/HeadlineBodyModel.swift index 0e4f22f6..c6dbd059 100644 --- a/MVMCoreUI/Models/Molecules/HeadlineBodyModel.swift +++ b/MVMCoreUI/Molecules/VerticalCombinationViews/HeadlineBodyModel.swift @@ -15,11 +15,9 @@ import Foundation public var style: String? public var backgroundColor: String? - public init(headline: LabelModel, body: LabelModel, style: String?, backgroundColor: String?) { + public init(headline: LabelModel, body: LabelModel) { self.headline = headline self.body = body - self.style = style - self.backgroundColor = backgroundColor } }