fix molecule protocol type
Update column molecule to allow for matching heights on each side.
This commit is contained in:
parent
bf39fd564f
commit
d8c52ab8a6
@ -8,9 +8,7 @@
|
|||||||
|
|
||||||
import Foundation
|
import Foundation
|
||||||
|
|
||||||
extension UIStackView: MoleculeViewProtocol {
|
extension UIStackView: MVMCoreUIMoleculeViewProtocol {
|
||||||
public func setWithJSON(_ json: [AnyHashable : Any]?, delegateObject: MVMCoreUIDelegateObject?, additionalData: [AnyHashable : Any]?) {}
|
|
||||||
|
|
||||||
public func updateView(_ size: CGFloat) {
|
public func updateView(_ size: CGFloat) {
|
||||||
for view in arrangedSubviews {
|
for view in arrangedSubviews {
|
||||||
(view as? MVMCoreViewProtocol)?.updateView(size)
|
(view as? MVMCoreViewProtocol)?.updateView(size)
|
||||||
@ -19,7 +17,7 @@ extension UIStackView: MoleculeViewProtocol {
|
|||||||
|
|
||||||
public func reset() {
|
public func reset() {
|
||||||
for view in arrangedSubviews {
|
for view in arrangedSubviews {
|
||||||
(view as? MoleculeViewProtocol)?.reset?()
|
(view as? MVMCoreUIMoleculeViewProtocol)?.reset?()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -311,7 +311,7 @@ static CGFloat const IndicatorRectangleHeight = 4;
|
|||||||
self.currentPage = page;
|
self.currentPage = page;
|
||||||
}
|
}
|
||||||
|
|
||||||
#pragma mark - MoleculeViewProtocol
|
#pragma mark - MVMCoreUIMoleculeViewProtocol
|
||||||
|
|
||||||
- (void)setWithJSON:(NSDictionary *)json delegateObject:(MVMCoreUIDelegateObject *)delegateObject additionalData:(NSDictionary *)additionalData {
|
- (void)setWithJSON:(NSDictionary *)json delegateObject:(MVMCoreUIDelegateObject *)delegateObject additionalData:(NSDictionary *)additionalData {
|
||||||
NSString *colorString = [json string:KeyBackgroundColor];
|
NSString *colorString = [json string:KeyBackgroundColor];
|
||||||
|
|||||||
@ -23,9 +23,42 @@ import Foundation
|
|||||||
let rightHeadline3 = Label.commonLabelB1(true)
|
let rightHeadline3 = Label.commonLabelB1(true)
|
||||||
let rightBody = Label.commonLabelB2(true)
|
let rightBody = Label.commonLabelB2(true)
|
||||||
let rightLink = Link()
|
let rightLink = Link()
|
||||||
let containerView = View()
|
let containingStack: Stack<StackModel>
|
||||||
let leftVerticalStack = UIStackView()
|
|
||||||
let rightVerticalStack = UIStackView()
|
//------------------------------------------------------
|
||||||
|
// MARK: - Initializers
|
||||||
|
//------------------------------------------------------
|
||||||
|
public override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
|
||||||
|
let stackHeadline1 = Stack<StackModel>.createStack(with: [(view: leftHeadline1, model: StackItemModel(percent: 50, verticalAlignment: .leading)),
|
||||||
|
(view: rightHeadline1, model: StackItemModel(percent: 50, verticalAlignment: .leading))],
|
||||||
|
axis: .horizontal)
|
||||||
|
let stackHeadline2 = Stack<StackModel>.createStack(with: [(view: leftHeadline2, model: StackItemModel(percent: 50, verticalAlignment: .leading)),
|
||||||
|
(view: rightHeadline2, model: StackItemModel(percent: 50, verticalAlignment: .leading))],
|
||||||
|
axis: .horizontal)
|
||||||
|
let stackHeadline3 = Stack<StackModel>.createStack(with: [(view: leftHeadline3, model: StackItemModel(percent: 50, verticalAlignment: .leading)),
|
||||||
|
(view: rightHeadline3, model: StackItemModel(percent: 50, verticalAlignment: .leading))],
|
||||||
|
axis: .horizontal)
|
||||||
|
let stackBody = Stack<StackModel>.createStack(with: [(view: leftBody, model: StackItemModel(percent: 50, verticalAlignment: .leading)),
|
||||||
|
(view: rightBody, model: StackItemModel(percent: 50, verticalAlignment: .leading))],
|
||||||
|
axis: .horizontal)
|
||||||
|
let stackLink = Stack<StackModel>.createStack(with: [(view: leftLink, model: StackItemModel(percent: 50, verticalAlignment: .leading)),
|
||||||
|
(view: rightLink, model: StackItemModel(percent: 50, verticalAlignment: .leading))],
|
||||||
|
axis: .horizontal)
|
||||||
|
containingStack = Stack<StackModel>.createStack(with: [stackHeadline1,
|
||||||
|
stackHeadline2,
|
||||||
|
stackHeadline3,
|
||||||
|
stackBody,
|
||||||
|
stackLink],
|
||||||
|
spacing: 0)
|
||||||
|
containingStack.stackModel?.molecules[1].spacing = 5
|
||||||
|
containingStack.stackModel?.molecules[2].spacing = 5
|
||||||
|
containingStack.stackModel?.molecules[4].spacing = 5
|
||||||
|
super.init(style: style, reuseIdentifier: reuseIdentifier)
|
||||||
|
}
|
||||||
|
|
||||||
|
public required init?(coder aDecoder: NSCoder) {
|
||||||
|
fatalError("init(coder:) has not been implemented")
|
||||||
|
}
|
||||||
|
|
||||||
//------------------------------------------------------
|
//------------------------------------------------------
|
||||||
// MARK: - Properties
|
// MARK: - Properties
|
||||||
@ -35,50 +68,13 @@ import Foundation
|
|||||||
//-------------------------------------------------------
|
//-------------------------------------------------------
|
||||||
// MARK: - View Lifecycle
|
// MARK: - View Lifecycle
|
||||||
//-------------------------------------------------------
|
//-------------------------------------------------------
|
||||||
open override func updateView(_ size: CGFloat) {
|
|
||||||
super.updateView(size)
|
|
||||||
leftLink.updateView(size)
|
|
||||||
rightLink.updateView(size)
|
|
||||||
}
|
|
||||||
|
|
||||||
open override func setupView() {
|
open override func setupView() {
|
||||||
super.setupView()
|
super.setupView()
|
||||||
containerView.translatesAutoresizingMaskIntoConstraints = false
|
addMolecule(containingStack)
|
||||||
leftVerticalStack.translatesAutoresizingMaskIntoConstraints = false
|
for molecule in containingStack.stackItems {
|
||||||
rightVerticalStack.translatesAutoresizingMaskIntoConstraints = false
|
((molecule as? StackItem)?.view as? Stack<StackModel>)?.restack()
|
||||||
leftVerticalStack.addArrangedSubview(leftHeadline1)
|
}
|
||||||
leftVerticalStack.addArrangedSubview(leftHeadline2)
|
containingStack.restack()
|
||||||
leftVerticalStack.addArrangedSubview(leftHeadline3)
|
|
||||||
leftVerticalStack.addArrangedSubview(leftBody)
|
|
||||||
leftVerticalStack.addArrangedSubview(leftLink)
|
|
||||||
leftVerticalStack.axis = .vertical
|
|
||||||
leftVerticalStack.alignment = .leading
|
|
||||||
rightVerticalStack.addArrangedSubview(rightHeadline1)
|
|
||||||
rightVerticalStack.addArrangedSubview(rightHeadline2)
|
|
||||||
rightVerticalStack.addArrangedSubview(rightHeadline3)
|
|
||||||
rightVerticalStack.addArrangedSubview(rightBody)
|
|
||||||
rightVerticalStack.addArrangedSubview(rightLink)
|
|
||||||
rightVerticalStack.axis = .vertical
|
|
||||||
rightVerticalStack.alignment = .leading
|
|
||||||
containerView.addSubview(leftVerticalStack)
|
|
||||||
containerView.addSubview(rightVerticalStack)
|
|
||||||
|
|
||||||
//containerView constraints
|
|
||||||
contentView.addSubview(containerView)
|
|
||||||
containerHelper.constrainView(containerView)
|
|
||||||
NSLayoutConstraint.pinViews(leftView: leftVerticalStack, rightView: rightVerticalStack, alignTop: true)
|
|
||||||
|
|
||||||
//leftVerticalStack constraints
|
|
||||||
leftVerticalStack.widthAnchor.constraint(equalTo: rightVerticalStack.widthAnchor, multiplier: 1).isActive = true
|
|
||||||
leftVerticalStack.heightAnchor.constraint(equalTo: rightVerticalStack.heightAnchor, multiplier: 1).isActive = true
|
|
||||||
leftVerticalStack.setCustomSpacing(stackSpacing, after: leftHeadline1)
|
|
||||||
leftVerticalStack.setCustomSpacing(stackSpacing, after: leftHeadline2)
|
|
||||||
leftVerticalStack.setCustomSpacing(stackSpacing, after: leftBody)
|
|
||||||
|
|
||||||
//rightVerticalStack constraints
|
|
||||||
rightVerticalStack.setCustomSpacing(stackSpacing, after: rightHeadline1)
|
|
||||||
rightVerticalStack.setCustomSpacing(stackSpacing, after: rightHeadline2)
|
|
||||||
rightVerticalStack.setCustomSpacing(stackSpacing, after: rightBody)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//------------------------------------------------------
|
//------------------------------------------------------
|
||||||
@ -105,12 +101,10 @@ import Foundation
|
|||||||
leftHeadline2.styleB1(true)
|
leftHeadline2.styleB1(true)
|
||||||
leftHeadline3.styleB1(true)
|
leftHeadline3.styleB1(true)
|
||||||
leftBody.styleB2(true)
|
leftBody.styleB2(true)
|
||||||
leftLink.reset()
|
|
||||||
rightHeadline1.styleB1(true)
|
rightHeadline1.styleB1(true)
|
||||||
rightHeadline2.styleB1(true)
|
rightHeadline2.styleB1(true)
|
||||||
rightHeadline3.styleB1(true)
|
rightHeadline3.styleB1(true)
|
||||||
rightBody.styleB2(true)
|
rightBody.styleB2(true)
|
||||||
rightLink.reset()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override class func estimatedHeight(with molecule: MoleculeModelProtocol?, _ delegateObject: MVMCoreUIDelegateObject?) -> CGFloat {
|
public override class func estimatedHeight(with molecule: MoleculeModelProtocol?, _ delegateObject: MVMCoreUIDelegateObject?) -> CGFloat {
|
||||||
|
|||||||
@ -152,7 +152,7 @@ import UIKit
|
|||||||
styleDefault()
|
styleDefault()
|
||||||
spaceAboveMolecule = 6.0
|
spaceAboveMolecule = 6.0
|
||||||
spaceBelowMolecule = 6.0
|
spaceBelowMolecule = 6.0
|
||||||
(middleView as? MoleculeViewProtocol)?.reset?()
|
(middleView as? MVMCoreUIMoleculeViewProtocol)?.reset?()
|
||||||
}
|
}
|
||||||
|
|
||||||
func styleDefault() {
|
func styleDefault() {
|
||||||
|
|||||||
@ -73,7 +73,7 @@ open class StringAndMoleculeView: View {
|
|||||||
override open func reset() {
|
override open func reset() {
|
||||||
super.reset()
|
super.reset()
|
||||||
label.reset()
|
label.reset()
|
||||||
(molecule as? MoleculeViewProtocol)?.reset?()
|
(molecule as? MVMCoreUIMoleculeViewProtocol)?.reset?()
|
||||||
}
|
}
|
||||||
|
|
||||||
public override func set(with model: MoleculeModelProtocol, _ delegateObject: MVMCoreUIDelegateObject?, _ additionalData: [AnyHashable : Any]?) {
|
public override func set(with model: MoleculeModelProtocol, _ delegateObject: MVMCoreUIDelegateObject?, _ additionalData: [AnyHashable : Any]?) {
|
||||||
|
|||||||
@ -135,7 +135,7 @@ open class Stack<T>: Container where T: (StackModelProtocol & MoleculeModelProto
|
|||||||
super.reset()
|
super.reset()
|
||||||
backgroundColor = .clear
|
backgroundColor = .clear
|
||||||
for item in stackItems {
|
for item in stackItems {
|
||||||
(item as? MoleculeViewProtocol)?.reset?()
|
(item as? MVMCoreUIMoleculeViewProtocol)?.reset?()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user