From fa99ba6b42e8047491300caf41c7133101eb9459 Mon Sep 17 00:00:00 2001 From: Kevin G Christiano Date: Tue, 29 Sep 2020 12:01:12 -0400 Subject: [PATCH 1/2] Improving accordion behavior. Not the +/- button responds to user interaction. --- .../AccordionMoleculeTableViewCell.swift | 26 +++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/MVMCoreUI/Atomic/Molecules/Items/AccordionMoleculeTableViewCell.swift b/MVMCoreUI/Atomic/Molecules/Items/AccordionMoleculeTableViewCell.swift index 8488703d..07bd9049 100644 --- a/MVMCoreUI/Atomic/Molecules/Items/AccordionMoleculeTableViewCell.swift +++ b/MVMCoreUI/Atomic/Molecules/Items/AccordionMoleculeTableViewCell.swift @@ -6,8 +6,6 @@ // Copyright © 2019 Verizon Wireless. All rights reserved. // -import UIKit - @objcMembers public class AccordionMoleculeTableViewCell: MoleculeTableViewCell { //-------------------------------------------------- @@ -28,6 +26,8 @@ import UIKit return accordionButton }() + var delegateObject: MVMCoreUIDelegateObject? + //-------------------------------------------------- // MARK: - Setup //-------------------------------------------------- @@ -36,10 +36,27 @@ import UIKit customAccessoryView = true super.setupView() accessoryView = accordionButton + + accordionButton.addActionBlock(event: .touchUpInside) { _ in + guard let model = self.accordionListItemModel else { return } + + if let indexPath = self.delegateObject?.moleculeDelegate?.getIndexPath(for: model) { + self.toggleAccordion(at: indexPath, delegateObject: self.delegateObject) + } + } } + //-------------------------------------------------- + // MARK: - Methods + //-------------------------------------------------- + override public func didSelectCell(at index: IndexPath, delegateObject: MVMCoreUIDelegateObject?, additionalData: [AnyHashable: Any]?) { + toggleAccordion(at: index, delegateObject: delegateObject) + } + + func toggleAccordion(at index: IndexPath, delegateObject: MVMCoreUIDelegateObject?) { + accordionButton.isSelected.toggle() accordionButton.setTitle(accordionButton.isSelected ? "-" : "+", for: .normal) @@ -57,4 +74,9 @@ import UIKit bottomSeparatorView?.isHidden = accordionButton.isSelected } } + + public override func set(with model: MoleculeModelProtocol, _ delegateObject: MVMCoreUIDelegateObject?, _ additionalData: [AnyHashable: Any]?) { + super.set(with: model, delegateObject, additionalData) + self.delegateObject = delegateObject + } } From 5398008a0dc7783f6f750c0d0e38f1dea45768f0 Mon Sep 17 00:00:00 2001 From: Kevin G Christiano Date: Tue, 29 Sep 2020 13:34:32 -0400 Subject: [PATCH 2/2] rollback some behavior --- .../AccordionMoleculeTableViewCell.swift | 25 +------------------ 1 file changed, 1 insertion(+), 24 deletions(-) diff --git a/MVMCoreUI/Atomic/Molecules/Items/AccordionMoleculeTableViewCell.swift b/MVMCoreUI/Atomic/Molecules/Items/AccordionMoleculeTableViewCell.swift index 07bd9049..f7a493d7 100644 --- a/MVMCoreUI/Atomic/Molecules/Items/AccordionMoleculeTableViewCell.swift +++ b/MVMCoreUI/Atomic/Molecules/Items/AccordionMoleculeTableViewCell.swift @@ -26,8 +26,6 @@ return accordionButton }() - var delegateObject: MVMCoreUIDelegateObject? - //-------------------------------------------------- // MARK: - Setup //-------------------------------------------------- @@ -36,27 +34,11 @@ customAccessoryView = true super.setupView() accessoryView = accordionButton - - accordionButton.addActionBlock(event: .touchUpInside) { _ in - guard let model = self.accordionListItemModel else { return } - - if let indexPath = self.delegateObject?.moleculeDelegate?.getIndexPath(for: model) { - self.toggleAccordion(at: indexPath, delegateObject: self.delegateObject) - } - } + accessoryView?.isUserInteractionEnabled = false } - //-------------------------------------------------- - // MARK: - Methods - //-------------------------------------------------- - override public func didSelectCell(at index: IndexPath, delegateObject: MVMCoreUIDelegateObject?, additionalData: [AnyHashable: Any]?) { - toggleAccordion(at: index, delegateObject: delegateObject) - } - - func toggleAccordion(at index: IndexPath, delegateObject: MVMCoreUIDelegateObject?) { - accordionButton.isSelected.toggle() accordionButton.setTitle(accordionButton.isSelected ? "-" : "+", for: .normal) @@ -74,9 +56,4 @@ bottomSeparatorView?.isHidden = accordionButton.isSelected } } - - public override func set(with model: MoleculeModelProtocol, _ delegateObject: MVMCoreUIDelegateObject?, _ additionalData: [AnyHashable: Any]?) { - super.set(with: model, delegateObject, additionalData) - self.delegateObject = delegateObject - } }