update border color
don't show line for last cell
This commit is contained in:
parent
256927760f
commit
901b7438ea
@ -148,9 +148,9 @@ open class Carousel: View {
|
|||||||
|
|
||||||
guard let carouselModel = model as? CarouselModel else { return }
|
guard let carouselModel = model as? CarouselModel else { return }
|
||||||
accessibilityLabel = carouselModel.accessibilityText
|
accessibilityLabel = carouselModel.accessibilityText
|
||||||
collectionView.layer.borderColor = UIColor.black.cgColor
|
collectionView.layer.borderColor = UIColor.mvmCoolGray3.cgColor
|
||||||
collectionView.layer.borderWidth = (carouselModel.border ?? false) ? 1 : 0
|
collectionView.layer.borderWidth = (carouselModel.border ?? false) ? 1 : 0
|
||||||
(collectionView.collectionViewLayout as? CarouselCollectionLayout)?.useLines = (carouselModel.border ?? false)
|
(collectionView.collectionViewLayout as? CarouselCollectionLayout)?.useLines = carouselModel.border ?? false
|
||||||
(collectionView.collectionViewLayout as? UICollectionViewFlowLayout)?.minimumLineSpacing = carouselModel.spacing ?? 0
|
(collectionView.collectionViewLayout as? UICollectionViewFlowLayout)?.minimumLineSpacing = carouselModel.spacing ?? 0
|
||||||
|
|
||||||
itemWidthPercent = carouselModel.itemWidthPercent / 100.0
|
itemWidthPercent = carouselModel.itemWidthPercent / 100.0
|
||||||
|
|||||||
@ -36,14 +36,26 @@ open class CarouselCollectionLayout: UICollectionViewFlowLayout {
|
|||||||
return attributes
|
return attributes
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func shouldHaveLine(for indexPath: IndexPath) -> Bool {
|
||||||
|
// No line for the final index
|
||||||
|
guard let numberOfSections = collectionView?.numberOfSections,
|
||||||
|
numberOfSections > 0,
|
||||||
|
let numberOfItemsInLastSection = collectionView?.numberOfItems(inSection: numberOfSections - 1),
|
||||||
|
numberOfItemsInLastSection > 0,
|
||||||
|
indexPath.section == numberOfSections - 1,
|
||||||
|
indexPath.row == numberOfItemsInLastSection - 1 else { return true }
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
open override func layoutAttributesForElements(in rect: CGRect) -> [UICollectionViewLayoutAttributes]? {
|
open override func layoutAttributesForElements(in rect: CGRect) -> [UICollectionViewLayoutAttributes]? {
|
||||||
guard let allAttributes = super.layoutAttributesForElements(in: rect) else { return nil }
|
guard let allAttributes = super.layoutAttributesForElements(in: rect) else { return nil }
|
||||||
guard useLines else { return allAttributes }
|
guard useLines else { return allAttributes }
|
||||||
|
|
||||||
// Add line decorators.
|
// Add line decorators.
|
||||||
var newAttributes = allAttributes
|
var newAttributes = allAttributes
|
||||||
allAttributes.forEach { (attributes) in
|
allAttributes.forEach { (attributes) in
|
||||||
guard attributes.representedElementCategory == .cell,
|
|
||||||
|
guard shouldHaveLine(for: attributes.indexPath),
|
||||||
|
attributes.representedElementCategory == .cell,
|
||||||
let lineAttributes = layoutAttributesForDecorationView(ofKind: LineDecorationView.elementKind, at: attributes.indexPath),
|
let lineAttributes = layoutAttributesForDecorationView(ofKind: LineDecorationView.elementKind, at: attributes.indexPath),
|
||||||
rect.intersects(lineAttributes.frame) else { return }
|
rect.intersects(lineAttributes.frame) else { return }
|
||||||
newAttributes.append(lineAttributes)
|
newAttributes.append(lineAttributes)
|
||||||
|
|||||||
@ -6,12 +6,12 @@
|
|||||||
// Copyright © 2020 Verizon Wireless. All rights reserved.
|
// Copyright © 2020 Verizon Wireless. All rights reserved.
|
||||||
//
|
//
|
||||||
|
|
||||||
public class LineDecorationView : UICollectionReusableView {
|
public class LineDecorationView: UICollectionReusableView {
|
||||||
static public let elementKind = "line"
|
static public let elementKind = "line"
|
||||||
|
|
||||||
public override init(frame: CGRect) {
|
public override init(frame: CGRect) {
|
||||||
super.init(frame:frame)
|
super.init(frame:frame)
|
||||||
backgroundColor = .black
|
backgroundColor = .mvmCoolGray3
|
||||||
}
|
}
|
||||||
|
|
||||||
public required init?(coder aDecoder: NSCoder) {
|
public required init?(coder aDecoder: NSCoder) {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user