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
|
||||
|
||||
extension UIStackView: MoleculeViewProtocol {
|
||||
public func setWithJSON(_ json: [AnyHashable : Any]?, delegateObject: MVMCoreUIDelegateObject?, additionalData: [AnyHashable : Any]?) {}
|
||||
|
||||
extension UIStackView: MVMCoreUIMoleculeViewProtocol {
|
||||
public func updateView(_ size: CGFloat) {
|
||||
for view in arrangedSubviews {
|
||||
(view as? MVMCoreViewProtocol)?.updateView(size)
|
||||
@ -19,7 +17,7 @@ extension UIStackView: MoleculeViewProtocol {
|
||||
|
||||
public func reset() {
|
||||
for view in arrangedSubviews {
|
||||
(view as? MoleculeViewProtocol)?.reset?()
|
||||
(view as? MVMCoreUIMoleculeViewProtocol)?.reset?()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -311,7 +311,7 @@ static CGFloat const IndicatorRectangleHeight = 4;
|
||||
self.currentPage = page;
|
||||
}
|
||||
|
||||
#pragma mark - MoleculeViewProtocol
|
||||
#pragma mark - MVMCoreUIMoleculeViewProtocol
|
||||
|
||||
- (void)setWithJSON:(NSDictionary *)json delegateObject:(MVMCoreUIDelegateObject *)delegateObject additionalData:(NSDictionary *)additionalData {
|
||||
NSString *colorString = [json string:KeyBackgroundColor];
|
||||
|
||||
@ -23,9 +23,42 @@ import Foundation
|
||||
let rightHeadline3 = Label.commonLabelB1(true)
|
||||
let rightBody = Label.commonLabelB2(true)
|
||||
let rightLink = Link()
|
||||
let containerView = View()
|
||||
let leftVerticalStack = UIStackView()
|
||||
let rightVerticalStack = UIStackView()
|
||||
let containingStack: Stack<StackModel>
|
||||
|
||||
//------------------------------------------------------
|
||||
// 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
|
||||
@ -35,50 +68,13 @@ import Foundation
|
||||
//-------------------------------------------------------
|
||||
// MARK: - View Lifecycle
|
||||
//-------------------------------------------------------
|
||||
open override func updateView(_ size: CGFloat) {
|
||||
super.updateView(size)
|
||||
leftLink.updateView(size)
|
||||
rightLink.updateView(size)
|
||||
}
|
||||
|
||||
open override func setupView() {
|
||||
super.setupView()
|
||||
containerView.translatesAutoresizingMaskIntoConstraints = false
|
||||
leftVerticalStack.translatesAutoresizingMaskIntoConstraints = false
|
||||
rightVerticalStack.translatesAutoresizingMaskIntoConstraints = false
|
||||
leftVerticalStack.addArrangedSubview(leftHeadline1)
|
||||
leftVerticalStack.addArrangedSubview(leftHeadline2)
|
||||
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)
|
||||
addMolecule(containingStack)
|
||||
for molecule in containingStack.stackItems {
|
||||
((molecule as? StackItem)?.view as? Stack<StackModel>)?.restack()
|
||||
}
|
||||
containingStack.restack()
|
||||
}
|
||||
|
||||
//------------------------------------------------------
|
||||
@ -105,12 +101,10 @@ import Foundation
|
||||
leftHeadline2.styleB1(true)
|
||||
leftHeadline3.styleB1(true)
|
||||
leftBody.styleB2(true)
|
||||
leftLink.reset()
|
||||
rightHeadline1.styleB1(true)
|
||||
rightHeadline2.styleB1(true)
|
||||
rightHeadline3.styleB1(true)
|
||||
rightBody.styleB2(true)
|
||||
rightLink.reset()
|
||||
}
|
||||
|
||||
public override class func estimatedHeight(with molecule: MoleculeModelProtocol?, _ delegateObject: MVMCoreUIDelegateObject?) -> CGFloat {
|
||||
|
||||
@ -152,7 +152,7 @@ import UIKit
|
||||
styleDefault()
|
||||
spaceAboveMolecule = 6.0
|
||||
spaceBelowMolecule = 6.0
|
||||
(middleView as? MoleculeViewProtocol)?.reset?()
|
||||
(middleView as? MVMCoreUIMoleculeViewProtocol)?.reset?()
|
||||
}
|
||||
|
||||
func styleDefault() {
|
||||
|
||||
@ -73,7 +73,7 @@ open class StringAndMoleculeView: View {
|
||||
override open func reset() {
|
||||
super.reset()
|
||||
label.reset()
|
||||
(molecule as? MoleculeViewProtocol)?.reset?()
|
||||
(molecule as? MVMCoreUIMoleculeViewProtocol)?.reset?()
|
||||
}
|
||||
|
||||
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()
|
||||
backgroundColor = .clear
|
||||
for item in stackItems {
|
||||
(item as? MoleculeViewProtocol)?.reset?()
|
||||
(item as? MVMCoreUIMoleculeViewProtocol)?.reset?()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user