Code changes using the StackModel

This commit is contained in:
Subhankar Acharya 2020-02-11 22:21:07 +05:30
parent d5ac7e3e6d
commit d92c5b5679
2 changed files with 19 additions and 18 deletions

View File

@ -13,14 +13,13 @@ import Foundation
let leftHeadlineBody = HeadlineBody(frame: .zero) let leftHeadlineBody = HeadlineBody(frame: .zero)
let centerHeadLineBody = HeadlineBody(frame: .zero) let centerHeadLineBody = HeadlineBody(frame: .zero)
let rightHeadLineBody = HeadlineBody(frame: .zero) let rightHeadLineBody = HeadlineBody(frame: .zero)
private var stack = UIStackView() let stack = Stack<StackModel>(frame: .zero)
// MARK: - MFViewProtocol // MARK: - MFViewProtocol
open override func updateView(_ size: CGFloat) { open override func updateView(_ size: CGFloat) {
super.updateView(size) super.updateView(size)
leftHeadlineBody.updateView(size) styleTallDivider()
centerHeadLineBody.updateView(size) stack.updateView(size)
rightHeadLineBody.updateView(size)
} }
open override func setupView() { open override func setupView() {
@ -28,18 +27,11 @@ import Foundation
guard leftHeadlineBody.superview == nil else { guard leftHeadlineBody.superview == nil else {
return return
} }
//using stackView to align the three headlineBody //using stackItems to align the three headlineBody
stack.translatesAutoresizingMaskIntoConstraints = false stack.translatesAutoresizingMaskIntoConstraints = false
stack.stackItems = [StackItem(andContain: leftHeadlineBody),StackItem(andContain: centerHeadLineBody),StackItem(andContain: rightHeadLineBody)]
contentView.addSubview(stack) contentView.addSubview(stack)
stack.addArrangedSubview(leftHeadlineBody) containerHelper.constrainView(stack)
stack.addArrangedSubview(centerHeadLineBody)
stack.addArrangedSubview(rightHeadLineBody)
NSLayoutConstraint.constraintPinSubview(stack, pinTop: true, topConstant: 0, pinBottom: false, bottomConstant: 0, pinLeft: true, leftConstant: PaddingDefaultHorizontalSpacing, pinRight: true, rightConstant: PaddingDefaultHorizontalSpacing)
stack.bottomAnchor.constraint(equalTo: contentView.bottomAnchor, constant: 0).isActive = true
stack.axis = .horizontal
stack.spacing = 35
stack.distribution = .fillProportionally
styleTallDivider()
} }
// MARK: - MVMCoreUIMoleculeViewProtocol // MARK: - MVMCoreUIMoleculeViewProtocol
@ -49,14 +41,18 @@ import Foundation
leftHeadlineBody.setWithModel(model.leftHeadlineBody, delegateObject, additionalData) leftHeadlineBody.setWithModel(model.leftHeadlineBody, delegateObject, additionalData)
centerHeadLineBody.setWithModel(model.centerHeadlineBody, delegateObject, additionalData) centerHeadLineBody.setWithModel(model.centerHeadlineBody, delegateObject, additionalData)
rightHeadLineBody.setWithModel(model.rightHeadlineBody, delegateObject, additionalData) rightHeadLineBody.setWithModel(model.rightHeadlineBody, delegateObject, additionalData)
// Create a stack model to use for the internal stack.
let stackModel = StackModel(molecules: [StackItemModel(percent: 33),StackItemModel(percent: 33),StackItemModel(percent: 33)])
stackModel.spacing = 0
stackModel.axis = .horizontal
stack.model = stackModel
stack.restack()
} }
open override func reset() { open override func reset() {
super.reset() super.reset()
styleTallDivider() stack.reset()
leftHeadlineBody.reset()
centerHeadLineBody.reset()
rightHeadLineBody.reset()
} }
public override class func estimatedHeight(forRow molecule: MoleculeModelProtocol?, delegateObject: MVMCoreUIDelegateObject?) -> CGFloat { public override class func estimatedHeight(forRow molecule: MoleculeModelProtocol?, delegateObject: MVMCoreUIDelegateObject?) -> CGFloat {

View File

@ -19,4 +19,9 @@ import Foundation
self.init() self.init()
self.gone = gone self.gone = gone
} }
public convenience init(percent: Int) {
self.init()
self.percent = percent
}
} }