// // MoleculeStackView.swift // MVMCoreUI // // Created by Scott Pfeil on 2/11/19. // Copyright © 2019 Verizon Wireless. All rights reserved. // import UIKit open class MoleculeStackView: Stack { override var stackModel: MoleculeStackModel? { get { return model as? MoleculeStackModel } } /// Convenience function, adds a molecule to a MoleculeStackItem to the MoleculeStack func setup(with views: [View], lastItem: Bool) { var models: [MoleculeStackItemModel] = [] for view in views { guard let model = view.model else { return } let stackItemModel = MoleculeStackItemModel(with: model) let stackItem = MoleculeStackItem(andContain: view) stackItems.append(stackItem) models.append(stackItemModel) } if let stackModel = stackModel { stackModel.molecules = models } else { model = MoleculeStackModel(molecules: models) } restack() } // MARK: - Adding to stack /// Creates all of the stackItems for the stackItemModels override open func createStackItemsFromModel(_ model: MoleculeModelProtocol, _ delegateObject: MVMCoreUIDelegateObject?, _ additionalData: [AnyHashable : Any]?) { guard let stackItemModels = stackModel?.molecules else { return } for model in stackItemModels { if let stackItem = MVMCoreUIMoleculeMappingObject.shared()?.createMolecule(model, delegateObject) as? MoleculeStackItem { stackItems.append(stackItem) } } } }