Open chamitha opened 3 years ago
@chamitha I faced the same problem, please try using alignedFlowLayout?.verticalAlignment = .center
@chamitha I faced the same problem, please try using
alignedFlowLayout?.verticalAlignment = .center
Thanks @JAGUAR108 but I need the vertical alignment to be top.
I changed the following method to return at least 1 layout attribute, and it looks like it's working.
fileprivate func layoutAttributes(forItemsInLineWith layoutAttributes: UICollectionViewLayoutAttributes) -> [UICollectionViewLayoutAttributes] {
guard let lineWidth = contentWidth else {
return [layoutAttributes]
}
var lineFrame = layoutAttributes.frame
lineFrame.origin.x = sectionInset.left
lineFrame.size.width = lineWidth
let result = super.layoutAttributesForElements(in: lineFrame)
if let result = result, !result.isEmpty {
return result
} else {
return [UICollectionViewLayoutAttributes()]
}
}
I changed the following method to return at least 1 layout attribute, and it looks like it's working.
fileprivate func layoutAttributes(forItemsInLineWith layoutAttributes: UICollectionViewLayoutAttributes) -> [UICollectionViewLayoutAttributes] { guard let lineWidth = contentWidth else { return [layoutAttributes] } var lineFrame = layoutAttributes.frame lineFrame.origin.x = sectionInset.left lineFrame.size.width = lineWidth let result = super.layoutAttributesForElements(in: lineFrame) if let result = result, !result.isEmpty { return result } else { return [UICollectionViewLayoutAttributes()] } }
working.... 💯 🔥
I'm getting a crash force unwrapping a nil value testing on iOS 15 Beta but on iPad only. iPhone seems to work fine. The crash occurs here
the cause being on iPad
super.layoutAttributesForElements
called bylayoutAttributes(forItemsInLineWith: currentLayoutAttributes)
returns nil (and therefore an empty array) whereas on iPhone this returns the layout attributes of the cell. TheverticalAlignmentAxisForLine
func returns nil if the attributes array is empty therefore causing the force unwrap to crash.Whilst this issue might be fixed in a subsequent beta release I think it exposes a valid issue with the force unwrap. Perhaps a default alignment should be returned by
verticalAlignmentAxisForLine
instead of nil?