Improving accordion behavior. Not the +/- button responds to user interaction.

This commit is contained in:
Kevin G Christiano 2020-09-29 12:01:12 -04:00
parent 7c9be2e3de
commit fa99ba6b42

View File

@ -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
}
}