Merge branch 'bugfix/carousel_issues' into 'develop'

Bugfix/carousel issues

See merge request BPHV_MIPS/mvm_core_ui!734
This commit is contained in:
Christiano, Kevin 2021-07-15 15:43:32 +00:00
commit d9e2593de2
4 changed files with 23 additions and 3 deletions

View File

@ -234,6 +234,7 @@ open class BarsIndicatorView: CarouselIndicator {
super.reset()
barReferences.forEach { $0.removeFromSuperview() }
barReferences = []
currentIndex = 0
}
public override func updateUI(previousIndex: Int, newIndex: Int, totalCount: Int, isAnimated: Bool) {

View File

@ -248,4 +248,10 @@ open class CarouselIndicator: Control, CarouselPageControlProtocol {
bottomConstraint?.constant = constant
topConstraint?.constant = constant
}
open override func reset() {
super.reset()
currentIndex = 0
previousIndex = 0
}
}

View File

@ -41,7 +41,7 @@ open class Carousel: View {
open var numberOfPages = 0
/// The models for the molecules.
public var molecules: [MoleculeModelProtocol & CarouselItemModelProtocol]?
public var molecules: [MoleculeModelProtocol & CarouselItemModelProtocol & CollectionItemModelProtocol]?
/// The horizontal alignment of the cell in the collection view. Only noticeable if the itemWidthPercent is less than 100%.
public var itemAlignment = UICollectionView.ScrollPosition.left
@ -177,6 +177,7 @@ open class Carousel: View {
if let selectedIndex = carouselModel.selectedIndex {
let adjustedIndex = loop ? selectedIndex + 2 : selectedIndex
collectionView.selectItem(at: IndexPath(row: adjustedIndex, section: 0), animated: false, scrollPosition: [])
goTo(adjustedIndex, animated: false)
}
}
@ -207,6 +208,13 @@ open class Carousel: View {
pageIndex = 0
}
open override func reset() {
super.reset()
currentIndex = 0
pageIndex = 0
pagingView?.reset()
}
var pagingMoleculeName: String?
/// Sets up the paging molecule
@ -216,6 +224,7 @@ open class Carousel: View {
molecule.moleculeName == pagingMoleculeName {
pagingView?.set(with: molecule, delegateObject, nil)
pagingView?.numberOfPages = numberOfPages
pagingView?.currentIndex = currentIndex
return
}
@ -423,6 +432,10 @@ extension Carousel: UICollectionViewDelegate {
adjustedIndex = adjustedIndex + numberOfPages
}
model.selectedIndex = adjustedIndex
currentIndex = adjustedIndex
pageIndex = currentIndex
pagingView?.currentIndex = adjustedIndex
updateModelIndex()
}
if let cell = collectionView.cellForItem(at: indexPath) as? CollectionTemplateItemProtocol {
cell.didSelectCell(at: indexPath, delegateObject: delegateObject, additionalData: nil)

View File

@ -20,7 +20,7 @@ import UIKit
}
public var backgroundColor: Color?
public var molecules: [MoleculeModelProtocol & CarouselItemModelProtocol]
public var molecules: [MoleculeModelProtocol & CarouselItemModelProtocol & CollectionItemModelProtocol]
public var index: Int = 0
public var spacing: CGFloat?
public var border: Bool?
@ -41,7 +41,7 @@ import UIKit
public var selectable = false
public var selectedIndex: Int?
public init(molecules: [MoleculeModelProtocol & CarouselItemModelProtocol]) {
public init(molecules: [MoleculeModelProtocol & CarouselItemModelProtocol & CollectionItemModelProtocol]) {
self.molecules = molecules
}