我正在使用下面的自定义UICollectionViewFlowLayout代码来实现自动调整大小和固定宽度的自我调整大小。它工作正常,但滚动不能正常工作。如果内容超出约0-60像素范围,则根本不允许滚动。如果它高一点,它会滚动,但会有一个断断续续的高度和滚动条的高度。
class CustomFlowLayout: UICollectionViewFlowLayout {
override func layoutAttributesForItem(at indexPath: IndexPath) -> UICollectionViewLayoutAttributes? {
let attributes = super.layoutAttributesForItem(at: indexPath)?.copy() as? UICollectionViewLayoutAttributes
guard let collectionView = collectionView else { return attributes }
attributes?.bounds.size.width = collectionView.bounds.width
return attributes
}
override func layoutAttributesForElements(in rect: CGRect) -> [UICollectionViewLayoutAttributes]? {
let allAttributes = super.layoutAttributesForElements(in: rect)
return allAttributes?.flatMap { attributes in
switch attributes.representedElementCategory {
case .cell: return layoutAttributesForItem(at: attributes.indexPath)
default: return attributes
}
}
}
}
我该怎么做才能防止这种情况发生?