From 2a7cff7e0346e1d3745fdb40945bac50daf09cd4 Mon Sep 17 00:00:00 2001 From: Scott Pfeil Date: Wed, 21 Sep 2022 16:05:46 -0400 Subject: [PATCH] Changes to get grid wall working --- .../Molecules/Items/MoleculeCollectionItemModel.swift | 6 ++++++ .../Molecules/Items/MoleculeCollectionViewCell.swift | 7 +++++++ MVMCoreUI/Atomic/Templates/CollectionTemplate.swift | 10 +--------- ...VMCoreUIViewControllerMappingObject+Extension.swift | 1 + 4 files changed, 15 insertions(+), 9 deletions(-) diff --git a/MVMCoreUI/Atomic/Molecules/Items/MoleculeCollectionItemModel.swift b/MVMCoreUI/Atomic/Molecules/Items/MoleculeCollectionItemModel.swift index 5523d08d..2afda5a4 100644 --- a/MVMCoreUI/Atomic/Molecules/Items/MoleculeCollectionItemModel.swift +++ b/MVMCoreUI/Atomic/Molecules/Items/MoleculeCollectionItemModel.swift @@ -16,6 +16,7 @@ open override class var identifier: String { "collectionItem" } public var action: ActionModelProtocol? + public var border = false //-------------------------------------------------- // MARK: - Keys @@ -23,6 +24,7 @@ private enum CodingKeys: String, CodingKey { case action + case border } //-------------------------------------------------- @@ -59,12 +61,16 @@ required public init(from decoder: Decoder) throws { let typeContainer = try decoder.container(keyedBy: CodingKeys.self) action = try typeContainer.decodeModelIfPresent(codingKey: .action) + if let border = try typeContainer.decodeIfPresent(Bool.self, forKey: .border) { + self.border = border + } try super.init(from: decoder) } public override func encode(to encoder: Encoder) throws { var container = encoder.container(keyedBy: CodingKeys.self) try container.encodeModelIfPresent(action, forKey: .action) + try container.encodeIfPresent(border, forKey: .border) try super.encode(to: encoder) } } diff --git a/MVMCoreUI/Atomic/Molecules/Items/MoleculeCollectionViewCell.swift b/MVMCoreUI/Atomic/Molecules/Items/MoleculeCollectionViewCell.swift index 4ef4f84b..baad17f8 100644 --- a/MVMCoreUI/Atomic/Molecules/Items/MoleculeCollectionViewCell.swift +++ b/MVMCoreUI/Atomic/Molecules/Items/MoleculeCollectionViewCell.swift @@ -15,6 +15,13 @@ open class MoleculeCollectionViewCell: CollectionViewCell { super.set(with: model, delegateObject, additionalData) guard let collectionModel = model as? MoleculeCollectionItemModel else { return } + if collectionModel.border { + contentView.layer.borderColor = UIColor.black.cgColor + contentView.layer.borderWidth = 1 + } else { + contentView.layer.borderWidth = 0 + } + if molecule == nil { if let moleculeView = ModelRegistry.createMolecule(collectionModel.molecule, delegateObject: delegateObject, additionalData: additionalData) { addMolecule(moleculeView) diff --git a/MVMCoreUI/Atomic/Templates/CollectionTemplate.swift b/MVMCoreUI/Atomic/Templates/CollectionTemplate.swift index 8e81c622..14548606 100644 --- a/MVMCoreUI/Atomic/Templates/CollectionTemplate.swift +++ b/MVMCoreUI/Atomic/Templates/CollectionTemplate.swift @@ -100,7 +100,7 @@ let columns = templateModel?.columns, columns > 0, let cell = cell as? CollectionTemplateItemProtocol { let width = (size - collectionView.adjustedContentInset.left - collectionView.adjustedContentInset.right) / CGFloat(columns) - cell.set(width: width - 0.6) + cell.set(width: width - 0.1) } } @@ -141,14 +141,6 @@ (cell as? CollectionTemplateItemProtocol)?.willDisplay() } - public func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat { - return 1 - } - - public func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAt section: Int) -> CGFloat { - return 1 - } - //-------------------------------------------------- // MARK: - Convenience //-------------------------------------------------- diff --git a/MVMCoreUI/OtherHandlers/MVMCoreUIViewControllerMappingObject+Extension.swift b/MVMCoreUI/OtherHandlers/MVMCoreUIViewControllerMappingObject+Extension.swift index f126799c..34525751 100644 --- a/MVMCoreUI/OtherHandlers/MVMCoreUIViewControllerMappingObject+Extension.swift +++ b/MVMCoreUI/OtherHandlers/MVMCoreUIViewControllerMappingObject+Extension.swift @@ -19,6 +19,7 @@ public extension MVMCoreUIViewControllerMappingObject { add(toTemplateViewControllerMapping: ["modalStack": MVMCoreViewControllerProgrammaticMappingObject(with: ModalMoleculeStackTemplate.self)!]) register(template: MoleculeListTemplate.self) + register(template: CollectionTemplate.self) add(toTemplateViewControllerMapping: ["modalList": MVMCoreViewControllerProgrammaticMappingObject(with: ModalMoleculeListTemplate.self)!]) add(toTemplateViewControllerMapping: [SectionListTemplateModel.identifier: MVMCoreViewControllerProgrammaticMappingObject(with: SectionListTemplate.self)!]) add(toTemplateViewControllerMapping: [ModalSectionListTemplateModel.identifier: MVMCoreViewControllerProgrammaticMappingObject(with: ModalSectionListTemplate.self)!])