Creation and inclusion of HeadlineBodyButton molecule.
This commit is contained in:
parent
9ae91ca84a
commit
bedd05daa6
@ -18,6 +18,7 @@
|
|||||||
01DF567021FA5AB300CC099B /* TextFieldListFormViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01DF566F21FA5AB300CC099B /* TextFieldListFormViewController.swift */; };
|
01DF567021FA5AB300CC099B /* TextFieldListFormViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01DF566F21FA5AB300CC099B /* TextFieldListFormViewController.swift */; };
|
||||||
01E569D3223FFFA500327251 /* ThreeLayerViewController.swift in Headers */ = {isa = PBXBuildFile; fileRef = D2A5146A2214905000345BFB /* ThreeLayerViewController.swift */; settings = {ATTRIBUTES = (Public, ); }; };
|
01E569D3223FFFA500327251 /* ThreeLayerViewController.swift in Headers */ = {isa = PBXBuildFile; fileRef = D2A5146A2214905000345BFB /* ThreeLayerViewController.swift */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||||
0A1214A022C11A18007C7030 /* ActionDetailWithImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A12149F22C11A17007C7030 /* ActionDetailWithImage.swift */; };
|
0A1214A022C11A18007C7030 /* ActionDetailWithImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A12149F22C11A17007C7030 /* ActionDetailWithImage.swift */; };
|
||||||
|
0A7BAD74232A8DC700FB8E22 /* HeadlineBodyButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A7BAD73232A8DC700FB8E22 /* HeadlineBodyButton.swift */; };
|
||||||
948DB67E2326DCD90011F916 /* MultiProgress.swift in Sources */ = {isa = PBXBuildFile; fileRef = 948DB67D2326DCD90011F916 /* MultiProgress.swift */; };
|
948DB67E2326DCD90011F916 /* MultiProgress.swift in Sources */ = {isa = PBXBuildFile; fileRef = 948DB67D2326DCD90011F916 /* MultiProgress.swift */; };
|
||||||
B8200E152280C4CF007245F4 /* ProgressBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8200E142280C4CF007245F4 /* ProgressBar.swift */; };
|
B8200E152280C4CF007245F4 /* ProgressBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8200E142280C4CF007245F4 /* ProgressBar.swift */; };
|
||||||
B8200E192281DC1A007245F4 /* CornerLabels.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8200E182281DC1A007245F4 /* CornerLabels.swift */; };
|
B8200E192281DC1A007245F4 /* CornerLabels.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8200E182281DC1A007245F4 /* CornerLabels.swift */; };
|
||||||
@ -202,6 +203,7 @@
|
|||||||
01DF55DF21F8FAA800CC099B /* MFTextFieldListView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MFTextFieldListView.swift; sourceTree = "<group>"; };
|
01DF55DF21F8FAA800CC099B /* MFTextFieldListView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MFTextFieldListView.swift; sourceTree = "<group>"; };
|
||||||
01DF566F21FA5AB300CC099B /* TextFieldListFormViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TextFieldListFormViewController.swift; sourceTree = "<group>"; };
|
01DF566F21FA5AB300CC099B /* TextFieldListFormViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TextFieldListFormViewController.swift; sourceTree = "<group>"; };
|
||||||
0A12149F22C11A17007C7030 /* ActionDetailWithImage.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ActionDetailWithImage.swift; sourceTree = "<group>"; };
|
0A12149F22C11A17007C7030 /* ActionDetailWithImage.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ActionDetailWithImage.swift; sourceTree = "<group>"; };
|
||||||
|
0A7BAD73232A8DC700FB8E22 /* HeadlineBodyButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HeadlineBodyButton.swift; sourceTree = "<group>"; };
|
||||||
0A804A3C2316CB79009A8656 /* HeadlineBodyPrimaryButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HeadlineBodyPrimaryButton.swift; sourceTree = "<group>"; };
|
0A804A3C2316CB79009A8656 /* HeadlineBodyPrimaryButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HeadlineBodyPrimaryButton.swift; sourceTree = "<group>"; };
|
||||||
948DB67D2326DCD90011F916 /* MultiProgress.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MultiProgress.swift; sourceTree = "<group>"; };
|
948DB67D2326DCD90011F916 /* MultiProgress.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MultiProgress.swift; sourceTree = "<group>"; };
|
||||||
B8200E142280C4CF007245F4 /* ProgressBar.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProgressBar.swift; sourceTree = "<group>"; };
|
B8200E142280C4CF007245F4 /* ProgressBar.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProgressBar.swift; sourceTree = "<group>"; };
|
||||||
@ -562,6 +564,7 @@
|
|||||||
D274CA322236A78900B01B62 /* StandardFooterView.swift */,
|
D274CA322236A78900B01B62 /* StandardFooterView.swift */,
|
||||||
D29B770F22C281F400D6ACE0 /* ModuleMolecule.swift */,
|
D29B770F22C281F400D6ACE0 /* ModuleMolecule.swift */,
|
||||||
D2D6CD3F22E78C1A00D701B8 /* Scroller.swift */,
|
D2D6CD3F22E78C1A00D701B8 /* Scroller.swift */,
|
||||||
|
0A7BAD73232A8DC700FB8E22 /* HeadlineBodyButton.swift */,
|
||||||
);
|
);
|
||||||
path = Molecules;
|
path = Molecules;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@ -1003,6 +1006,7 @@
|
|||||||
D29770F221F7C6D600B2F0D0 /* TopLabelsAndBottomButtonsTableViewController.m in Sources */,
|
D29770F221F7C6D600B2F0D0 /* TopLabelsAndBottomButtonsTableViewController.m in Sources */,
|
||||||
D29B771022C281F400D6ACE0 /* ModuleMolecule.swift in Sources */,
|
D29B771022C281F400D6ACE0 /* ModuleMolecule.swift in Sources */,
|
||||||
DBC4391922442197001AB423 /* DashLine.swift in Sources */,
|
DBC4391922442197001AB423 /* DashLine.swift in Sources */,
|
||||||
|
0A7BAD74232A8DC700FB8E22 /* HeadlineBodyButton.swift in Sources */,
|
||||||
D29DF29621E7ADB8003B2FB9 /* StackableViewController.m in Sources */,
|
D29DF29621E7ADB8003B2FB9 /* StackableViewController.m in Sources */,
|
||||||
D2E1FADB2260D3D200AEFD8C /* MVMCoreUIDelegateObject.swift in Sources */,
|
D2E1FADB2260D3D200AEFD8C /* MVMCoreUIDelegateObject.swift in Sources */,
|
||||||
D27CD40E2322EEAF00C1DC07 /* TabsTableViewCell.swift in Sources */,
|
D27CD40E2322EEAF00C1DC07 /* TabsTableViewCell.swift in Sources */,
|
||||||
@ -1024,7 +1028,6 @@
|
|||||||
01DF567021FA5AB300CC099B /* TextFieldListFormViewController.swift in Sources */,
|
01DF567021FA5AB300CC099B /* TextFieldListFormViewController.swift in Sources */,
|
||||||
D2A5145F2211DDC100345BFB /* MoleculeStackView.swift in Sources */,
|
D2A5145F2211DDC100345BFB /* MoleculeStackView.swift in Sources */,
|
||||||
D29DF27621E79E81003B2FB9 /* MVMCoreUILoggingHandler.m in Sources */,
|
D29DF27621E79E81003B2FB9 /* MVMCoreUILoggingHandler.m in Sources */,
|
||||||
0A804A3D2316CB79009A8656 /* HeadlineBodyPrimaryButton.swift in Sources */,
|
|
||||||
D29DF24D21E6A177003B2FB9 /* MFTextField.m in Sources */,
|
D29DF24D21E6A177003B2FB9 /* MFTextField.m in Sources */,
|
||||||
D29DF2A221E7AF4E003B2FB9 /* MVMCoreUIUtility.m in Sources */,
|
D29DF2A221E7AF4E003B2FB9 /* MVMCoreUIUtility.m in Sources */,
|
||||||
D29DF12B21E6851E003B2FB9 /* MVMCoreUITopAlertExpandableView.m in Sources */,
|
D29DF12B21E6851E003B2FB9 /* MVMCoreUITopAlertExpandableView.m in Sources */,
|
||||||
|
|||||||
@ -14,10 +14,8 @@ import UIKit
|
|||||||
// MARK: - Outlets
|
// MARK: - Outlets
|
||||||
//------------------------------------------------------
|
//------------------------------------------------------
|
||||||
|
|
||||||
let header = HeadlineBody(frame: .zero)
|
let headlineBodyButton = HeadlineBodyButton(frame: .zero)
|
||||||
let button = PrimaryButton.primaryTinyButton(false)!
|
|
||||||
let imageLoader = MFLoadImageView(pinnedEdges: .all)
|
let imageLoader = MFLoadImageView(pinnedEdges: .all)
|
||||||
let leftContainer = ViewConstrainingView.empty()
|
|
||||||
|
|
||||||
//------------------------------------------------------
|
//------------------------------------------------------
|
||||||
// MARK: - Properties
|
// MARK: - Properties
|
||||||
@ -30,7 +28,6 @@ import UIKit
|
|||||||
//------------------------------------------------------
|
//------------------------------------------------------
|
||||||
|
|
||||||
var imageLeadingConstraint: NSLayoutConstraint?
|
var imageLeadingConstraint: NSLayoutConstraint?
|
||||||
var buttonTopConstraint: NSLayoutConstraint?
|
|
||||||
|
|
||||||
//------------------------------------------------------
|
//------------------------------------------------------
|
||||||
// MARK: - Initialization
|
// MARK: - Initialization
|
||||||
@ -64,33 +61,20 @@ import UIKit
|
|||||||
|
|
||||||
setDefaultState()
|
setDefaultState()
|
||||||
|
|
||||||
addSubview(leftContainer)
|
|
||||||
addSubview(imageLoader)
|
addSubview(imageLoader)
|
||||||
leftContainer.addSubview(header)
|
addSubview(headlineBodyButton)
|
||||||
leftContainer.addSubview(button)
|
|
||||||
|
|
||||||
leftContainer.topAnchor.constraint(equalTo: layoutMarginsGuide.topAnchor).isActive = true
|
headlineBodyButton.topAnchor.constraint(equalTo: layoutMarginsGuide.topAnchor).isActive = true
|
||||||
leftContainer.leadingAnchor.constraint(equalTo: layoutMarginsGuide.leadingAnchor).isActive = true
|
headlineBodyButton.leadingAnchor.constraint(equalTo: layoutMarginsGuide.leadingAnchor).isActive = true
|
||||||
|
|
||||||
layoutMarginsGuide.bottomAnchor.constraint(greaterThanOrEqualTo: leftContainer.bottomAnchor).isActive = true
|
layoutMarginsGuide.bottomAnchor.constraint(greaterThanOrEqualTo: headlineBodyButton.bottomAnchor).isActive = true
|
||||||
let leftContainerBottom = leftContainer.bottomAnchor.constraint(equalTo: bottomAnchor)
|
let leftContainerBottom = headlineBodyButton.bottomAnchor.constraint(equalTo: bottomAnchor)
|
||||||
leftContainerBottom.priority = UILayoutPriority(249)
|
leftContainerBottom.priority = UILayoutPriority(249)
|
||||||
leftContainerBottom.isActive = true
|
leftContainerBottom.isActive = true
|
||||||
|
|
||||||
header.topAnchor.constraint(equalTo: leftContainer.topAnchor).isActive = true
|
|
||||||
header.leadingAnchor.constraint(equalTo: leftContainer.leadingAnchor).isActive = true
|
|
||||||
leftContainer.trailingAnchor.constraint(equalTo: header.trailingAnchor).isActive = true
|
|
||||||
|
|
||||||
buttonTopConstraint = button.topAnchor.constraint(equalTo: header.bottomAnchor, constant: buttonHeaderPadding)
|
|
||||||
buttonTopConstraint?.isActive = true
|
|
||||||
|
|
||||||
button.leadingAnchor.constraint(equalTo: leftContainer.leadingAnchor).isActive = true
|
|
||||||
leftContainer.bottomAnchor.constraint(equalTo: button.bottomAnchor).isActive = true
|
|
||||||
leftContainer.trailingAnchor.constraint(greaterThanOrEqualTo: button.trailingAnchor).isActive = true
|
|
||||||
|
|
||||||
imageLoader.centerYAnchor.constraint(equalTo: centerYAnchor).isActive = true
|
imageLoader.centerYAnchor.constraint(equalTo: centerYAnchor).isActive = true
|
||||||
layoutMarginsGuide.trailingAnchor.constraint(equalTo: imageLoader.trailingAnchor).isActive = true
|
layoutMarginsGuide.trailingAnchor.constraint(equalTo: imageLoader.trailingAnchor).isActive = true
|
||||||
imageLeadingConstraint = imageLoader.leadingAnchor.constraint(greaterThanOrEqualTo: leftContainer.trailingAnchor, constant: 16)
|
imageLeadingConstraint = imageLoader.leadingAnchor.constraint(greaterThanOrEqualTo: headlineBodyButton.trailingAnchor, constant: 16)
|
||||||
imageLeadingConstraint?.isActive = true
|
imageLeadingConstraint?.isActive = true
|
||||||
imageLoader.topAnchor.constraint(greaterThanOrEqualTo: layoutMarginsGuide.topAnchor).isActive = true
|
imageLoader.topAnchor.constraint(greaterThanOrEqualTo: layoutMarginsGuide.topAnchor).isActive = true
|
||||||
|
|
||||||
@ -103,12 +87,8 @@ import UIKit
|
|||||||
override open func updateView(_ size: CGFloat) {
|
override open func updateView(_ size: CGFloat) {
|
||||||
super.updateView(size)
|
super.updateView(size)
|
||||||
|
|
||||||
header.updateView(size)
|
headlineBodyButton.updateView(size)
|
||||||
button.updateView(size)
|
|
||||||
imageLoader.updateView(size)
|
imageLoader.updateView(size)
|
||||||
leftContainer.updateView(size)
|
|
||||||
|
|
||||||
buttonTopConstraint?.constant = header.hasText() ? buttonHeaderPadding : 0
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override static func estimatedHeight(forRow json: [AnyHashable: Any]?, delegateObject: MVMCoreUIDelegateObject?) -> CGFloat {
|
public override static func estimatedHeight(forRow json: [AnyHashable: Any]?, delegateObject: MVMCoreUIDelegateObject?) -> CGFloat {
|
||||||
@ -121,10 +101,8 @@ import UIKit
|
|||||||
|
|
||||||
private func setDefaultState() {
|
private func setDefaultState() {
|
||||||
|
|
||||||
header.headlineLabel.font = MFStyler.fontH3()
|
headlineBodyButton.headline.headlineLabel.font = MFStyler.fontH3()
|
||||||
header.messageLabel.font = MFStyler.fontB3()
|
headlineBodyButton.headline.messageLabel.font = MFStyler.fontB3()
|
||||||
button.setAsSecondaryCustom()
|
|
||||||
button.isHidden = false
|
|
||||||
imageLoader.imageView.contentMode = .scaleAspectFit
|
imageLoader.imageView.contentMode = .scaleAspectFit
|
||||||
imageLoader.addSizeConstraintsForAspectRatio = true
|
imageLoader.addSizeConstraintsForAspectRatio = true
|
||||||
buttonHeaderPadding = PaddingTwo
|
buttonHeaderPadding = PaddingTwo
|
||||||
@ -133,8 +111,7 @@ import UIKit
|
|||||||
override open func reset() {
|
override open func reset() {
|
||||||
super.reset()
|
super.reset()
|
||||||
|
|
||||||
header.reset()
|
headlineBodyButton.reset()
|
||||||
button.reset()
|
|
||||||
imageLeadingConstraint?.constant = 16
|
imageLeadingConstraint?.constant = 16
|
||||||
imageLoader.reset()
|
imageLoader.reset()
|
||||||
setDefaultState()
|
setDefaultState()
|
||||||
@ -143,8 +120,7 @@ import UIKit
|
|||||||
open override func setAsMolecule() {
|
open override func setAsMolecule() {
|
||||||
super.setAsMolecule()
|
super.setAsMolecule()
|
||||||
|
|
||||||
header.setAsMolecule()
|
headlineBodyButton.setAsMolecule()
|
||||||
button.setAsMolecule()
|
|
||||||
imageLoader.setAsMolecule()
|
imageLoader.setAsMolecule()
|
||||||
setDefaultState()
|
setDefaultState()
|
||||||
}
|
}
|
||||||
@ -154,17 +130,7 @@ import UIKit
|
|||||||
|
|
||||||
guard let dictionary = json else { return }
|
guard let dictionary = json else { return }
|
||||||
|
|
||||||
if let padding = dictionary.optionalCGFloatForKey("buttonHeaderPadding") {
|
headlineBodyButton.setWithJSON(dictionary.optionalDictionaryForKey("headlineBodyButton"), delegateObject: delegateObject, additionalData: additionalData)
|
||||||
buttonHeaderPadding = padding
|
|
||||||
}
|
|
||||||
|
|
||||||
header.setWithJSON(dictionary.optionalDictionaryForKey("headlineBody"), delegateObject: delegateObject, additionalData: additionalData)
|
|
||||||
imageLoader.setWithJSON(dictionary.optionalDictionaryForKey("image"), delegateObject: delegateObject, additionalData: additionalData)
|
imageLoader.setWithJSON(dictionary.optionalDictionaryForKey("image"), delegateObject: delegateObject, additionalData: additionalData)
|
||||||
|
|
||||||
if let buttonDictionary = dictionary.optionalDictionaryForKey("button") {
|
|
||||||
button.setWithJSON(buttonDictionary, delegateObject: delegateObject, additionalData: additionalData)
|
|
||||||
} else {
|
|
||||||
button.isHidden = true
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
129
MVMCoreUI/Molecules/HeadlineBodyButton.swift
Normal file
129
MVMCoreUI/Molecules/HeadlineBodyButton.swift
Normal file
@ -0,0 +1,129 @@
|
|||||||
|
//
|
||||||
|
// HeadlineBodyButton.swift
|
||||||
|
// MVMCoreUI
|
||||||
|
//
|
||||||
|
// Created by Kevin Christiano on 9/12/19.
|
||||||
|
// Copyright © 2019 Verizon Wireless. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
import UIKit
|
||||||
|
|
||||||
|
|
||||||
|
@objcMembers open class HeadlineBodyButton: ViewConstrainingView {
|
||||||
|
//------------------------------------------------------
|
||||||
|
// MARK: - Outlets
|
||||||
|
//------------------------------------------------------
|
||||||
|
|
||||||
|
let headline = HeadlineBody(frame: .zero)
|
||||||
|
let button = PrimaryButton.primaryTinyButton(false)!
|
||||||
|
|
||||||
|
//------------------------------------------------------
|
||||||
|
// MARK: - Properties
|
||||||
|
//------------------------------------------------------
|
||||||
|
|
||||||
|
var buttonHeadlinePadding: CGFloat = 16
|
||||||
|
|
||||||
|
//------------------------------------------------------
|
||||||
|
// MARK: - Constraints
|
||||||
|
//------------------------------------------------------
|
||||||
|
|
||||||
|
var buttonTopConstraint: NSLayoutConstraint?
|
||||||
|
|
||||||
|
//------------------------------------------------------
|
||||||
|
// MARK: - Initialization
|
||||||
|
//------------------------------------------------------
|
||||||
|
|
||||||
|
public init() {
|
||||||
|
super.init(frame: .zero)
|
||||||
|
}
|
||||||
|
|
||||||
|
public override init(frame: CGRect) {
|
||||||
|
super.init(frame: frame)
|
||||||
|
}
|
||||||
|
|
||||||
|
required public init?(coder aDecoder: NSCoder) {
|
||||||
|
super.init(coder: aDecoder)
|
||||||
|
}
|
||||||
|
|
||||||
|
public convenience init(json: [AnyHashable: Any]?, delegateObject: MVMCoreUIDelegateObject?, additionalData: [AnyHashable: Any]?) {
|
||||||
|
self.init()
|
||||||
|
setWithJSON(json, delegateObject: delegateObject, additionalData: additionalData)
|
||||||
|
}
|
||||||
|
|
||||||
|
//------------------------------------------------------
|
||||||
|
// MARK: - View Lifecycle
|
||||||
|
//------------------------------------------------------
|
||||||
|
|
||||||
|
override open func setupView() {
|
||||||
|
super.setupView()
|
||||||
|
|
||||||
|
guard subviews.isEmpty else { return }
|
||||||
|
|
||||||
|
setDefaultState()
|
||||||
|
|
||||||
|
addSubview(headline)
|
||||||
|
addSubview(button)
|
||||||
|
|
||||||
|
headline.topAnchor.constraint(equalTo: topAnchor).isActive = true
|
||||||
|
headline.leadingAnchor.constraint(equalTo: leadingAnchor).isActive = true
|
||||||
|
trailingAnchor.constraint(equalTo: headline.trailingAnchor).isActive = true
|
||||||
|
|
||||||
|
buttonTopConstraint = button.topAnchor.constraint(equalTo: headline.bottomAnchor, constant: buttonHeadlinePadding)
|
||||||
|
buttonTopConstraint?.isActive = true
|
||||||
|
|
||||||
|
button.leadingAnchor.constraint(equalTo: leadingAnchor).isActive = true
|
||||||
|
bottomAnchor.constraint(equalTo: button.bottomAnchor).isActive = true
|
||||||
|
trailingAnchor.constraint(greaterThanOrEqualTo: button.trailingAnchor).isActive = true
|
||||||
|
}
|
||||||
|
|
||||||
|
override open func updateView(_ size: CGFloat) {
|
||||||
|
super.updateView(size)
|
||||||
|
|
||||||
|
headline.updateView(size)
|
||||||
|
button.updateView(size)
|
||||||
|
|
||||||
|
buttonTopConstraint?.constant = headline.hasText() ? buttonHeadlinePadding : 0
|
||||||
|
}
|
||||||
|
private func setDefaultState() {
|
||||||
|
|
||||||
|
headline.headlineLabel.font = MFStyler.fontH3()
|
||||||
|
headline.messageLabel.font = MFStyler.fontB3()
|
||||||
|
button.setAsSecondaryCustom()
|
||||||
|
button.isHidden = false
|
||||||
|
buttonHeadlinePadding = PaddingTwo
|
||||||
|
}
|
||||||
|
|
||||||
|
override open func reset() {
|
||||||
|
super.reset()
|
||||||
|
|
||||||
|
headline.reset()
|
||||||
|
button.reset()
|
||||||
|
setDefaultState()
|
||||||
|
}
|
||||||
|
|
||||||
|
open override func setAsMolecule() {
|
||||||
|
super.setAsMolecule()
|
||||||
|
|
||||||
|
headline.setAsMolecule()
|
||||||
|
button.setAsMolecule()
|
||||||
|
setDefaultState()
|
||||||
|
}
|
||||||
|
|
||||||
|
open override func setWithJSON(_ json: [AnyHashable: Any]?, delegateObject: MVMCoreUIDelegateObject?, additionalData: [AnyHashable: Any]?) {
|
||||||
|
super.setWithJSON(json, delegateObject: delegateObject, additionalData: additionalData)
|
||||||
|
|
||||||
|
guard let dictionary = json else { return }
|
||||||
|
|
||||||
|
if let padding = dictionary.optionalCGFloatForKey("buttonHeadlinePadding") {
|
||||||
|
buttonHeadlinePadding = padding
|
||||||
|
}
|
||||||
|
|
||||||
|
headline.setWithJSON(dictionary.optionalDictionaryForKey("headlineBody"), delegateObject: delegateObject, additionalData: additionalData)
|
||||||
|
|
||||||
|
if let buttonDictionary = dictionary.optionalDictionaryForKey("button") {
|
||||||
|
button.setWithJSON(buttonDictionary, delegateObject: delegateObject, additionalData: additionalData)
|
||||||
|
} else {
|
||||||
|
button.isHidden = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -60,7 +60,8 @@
|
|||||||
@"headlineBodySwitch": HeadlineBodySwitch.class,
|
@"headlineBodySwitch": HeadlineBodySwitch.class,
|
||||||
@"headlineBodyTextButton": HeadlineBodyTextButton.class,
|
@"headlineBodyTextButton": HeadlineBodyTextButton.class,
|
||||||
@"headlineBodyTextButtonSwitch": HeadlineBodyTextButtonSwitch.class,
|
@"headlineBodyTextButtonSwitch": HeadlineBodyTextButtonSwitch.class,
|
||||||
@"tabsListItem": TabsTableViewCell.class
|
@"tabsListItem": TabsTableViewCell.class,
|
||||||
|
@"HeadlineBodyButton": HeadlineBodyButton.class
|
||||||
} mutableCopy];
|
} mutableCopy];
|
||||||
});
|
});
|
||||||
return mapping;
|
return mapping;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user