refactored to use updated ButtonGroupPositionLayout
Signed-off-by: Matt Bruce <matt.bruce@verizon.com>
This commit is contained in:
parent
17883b7853
commit
68e489ceea
@ -47,14 +47,17 @@ open class Breadcrumbs: View {
|
|||||||
//--------------------------------------------------
|
//--------------------------------------------------
|
||||||
// MARK: - Private Properties
|
// MARK: - Private Properties
|
||||||
//--------------------------------------------------
|
//--------------------------------------------------
|
||||||
let layout: UICollectionViewFlowLayout = BreadcrumbsFlowLayout().with {
|
fileprivate lazy var layout = ButtonGroupPositionLayout().with {
|
||||||
$0.estimatedItemSize = UICollectionViewFlowLayout.automaticSize
|
$0.position = .left
|
||||||
$0.minimumInteritemSpacing = VDSLayout.Spacing.space1X.value
|
$0.delegate = self
|
||||||
$0.minimumLineSpacing = VDSLayout.Spacing.space1X.value
|
$0.axisSpacer = { _, _, _ in
|
||||||
$0.sectionInset = .zero
|
return VDSLayout.Spacing.space1X.value
|
||||||
$0.scrollDirection = .vertical
|
}
|
||||||
|
$0.verticalSpacer = { _, _ in
|
||||||
|
return VDSLayout.Spacing.space1X.value
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
///Collectionview to render Breadcrumb Items
|
///Collectionview to render Breadcrumb Items
|
||||||
private lazy var collectionView: SelfSizingCollectionView = {
|
private lazy var collectionView: SelfSizingCollectionView = {
|
||||||
let collectionView = SelfSizingCollectionView(frame: .zero, collectionViewLayout: layout)
|
let collectionView = SelfSizingCollectionView(frame: .zero, collectionViewLayout: layout)
|
||||||
@ -134,9 +137,10 @@ open class Breadcrumbs: View {
|
|||||||
self.collectionView.collectionViewLayout.invalidateLayout()
|
self.collectionView.collectionViewLayout.invalidateLayout()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
private var separatorWidth = Label().with { $0.text = "/"; $0.sizeToFit() }.intrinsicContentSize.width
|
||||||
}
|
}
|
||||||
|
|
||||||
extension Breadcrumbs: UICollectionViewDelegate, UICollectionViewDataSource {
|
extension Breadcrumbs: UICollectionViewDelegate, UICollectionViewDataSource, ButtongGroupPositionLayoutDelegate {
|
||||||
//--------------------------------------------------
|
//--------------------------------------------------
|
||||||
// MARK: - UICollectionView Delegate & Datasource
|
// MARK: - UICollectionView Delegate & Datasource
|
||||||
//--------------------------------------------------
|
//--------------------------------------------------
|
||||||
@ -150,5 +154,16 @@ extension Breadcrumbs: UICollectionViewDelegate, UICollectionViewDataSource {
|
|||||||
cell.update(surface: surface, hideSlash: hideSlash, breadCrumbItem: breadcrumbs[indexPath.row])
|
cell.update(surface: surface, hideSlash: hideSlash, breadCrumbItem: breadcrumbs[indexPath.row])
|
||||||
return cell
|
return cell
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public func collectionView(_ collectionView: UICollectionView, sizeForItemAtIndexPath indexPath: IndexPath) -> CGSize {
|
||||||
|
let breadcrumb = breadcrumbs[indexPath.row]
|
||||||
|
let intrinsicSize = breadcrumb.intrinsicContentSize
|
||||||
|
let separatorFullWidth: CGFloat = indexPath.row == 0 ? 0 : VDSLayout.Spacing.space1X.value + separatorWidth
|
||||||
|
let cellwidth = intrinsicSize.width + separatorFullWidth
|
||||||
|
return .init(width: min(cellwidth, collectionView.frame.width), height: intrinsicSize.height)
|
||||||
|
}
|
||||||
|
|
||||||
|
public func collectionView(_ collectionView: UICollectionView, buttonBaseAtIndexPath indexPath: IndexPath) -> ButtonBase {
|
||||||
|
breadcrumbs[indexPath.row]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user