Made the code more concise
This commit is contained in:
parent
f4fa6d8291
commit
cd23384db3
@ -5,30 +5,21 @@
|
||||
// Created by Dhamodaram Nandi on 05/06/20.
|
||||
// Copyright © 2020 Verizon Wireless. All rights reserved.
|
||||
//
|
||||
// Left aligns items and makes the minimumInteritemSpacing absolute.
|
||||
|
||||
import Foundation
|
||||
|
||||
class UICollectionViewLeftAlignedLayout: UICollectionViewFlowLayout {
|
||||
override func layoutAttributesForElements(in rect: CGRect) -> [UICollectionViewLayoutAttributes]? {
|
||||
guard let attributes = super.layoutAttributesForElements(in: rect) else {
|
||||
return nil
|
||||
}
|
||||
guard let attributes = super.layoutAttributesForElements(in: rect) else { return nil }
|
||||
var newAttributesForElementsInRect = [UICollectionViewLayoutAttributes]()
|
||||
var leftMargin: CGFloat = 0.0;
|
||||
let leftPadding: CGFloat = 0
|
||||
let interItemSpacing = minimumInteritemSpacing
|
||||
var maxY: CGFloat = -1.0
|
||||
for attribute in attributes {
|
||||
if attribute.frame.origin.y >= maxY {
|
||||
leftMargin = leftPadding
|
||||
if let previousFrame = newAttributesForElementsInRect.last,
|
||||
MVMCoreGetterUtility.cgfequal(previousFrame.frame.minY, attribute.frame.minY) {
|
||||
attribute.frame.origin.x = previousFrame.frame.maxX + minimumInteritemSpacing
|
||||
} else {
|
||||
var newLeftAlignedFrame = attribute.frame
|
||||
newLeftAlignedFrame.origin.x = leftMargin
|
||||
attribute.frame = newLeftAlignedFrame
|
||||
attribute.frame.origin.x = 0
|
||||
}
|
||||
attribute.frame.origin.x = leftMargin
|
||||
leftMargin += attribute.frame.width + interItemSpacing
|
||||
maxY = max(attribute.frame.maxY, maxY)
|
||||
newAttributesForElementsInRect.append(attribute)
|
||||
}
|
||||
return newAttributesForElementsInRect
|
||||
|
||||
Loading…
Reference in New Issue
Block a user