봅니다 나는 그것이 아주 사소한 질문 알고 있지만 내가 그것을 물어 감히 하위 클래스라는 UICollectionViewFlowLayout
let flowLayout = LeftAgignedFlowLayout()
flowLayout.minimumLineSpacing = 18
flowLayout.minimumInteritemSpacing = 8
flowLayout.scrollDirection = .vertical
self.collectionViewLayout = flowLayout
class LeftAgignedFlowLayout : UICollectionViewFlowLayout {
override func layoutAttributesForElements(in rect: CGRect) -> [UICollectionViewLayoutAttributes]? {
let arr = super.layoutAttributesForElements(in: rect)!
return arr.map {
atts in
var atts = atts
if atts.representedElementCategory == .cell {
let ip = atts.indexPath
atts = self.layoutAttributesForItem(at:ip)!
}
return atts
}
}
override func layoutAttributesForItem(at indexPath: IndexPath) -> UICollectionViewLayoutAttributes? {
var atts = super.layoutAttributesForItem(at:indexPath)!
if indexPath.item == 0 {
return atts
}
if atts.frame.origin.x - 1 <= self.sectionInset.left {
return atts
}
let ipPv = IndexPath(item:indexPath.row-1, section:indexPath.section)
let fPv = self.layoutAttributesForItem(at:ipPv)!.frame
let rightPv = fPv.origin.x + fPv.size.width + self.minimumInteritemSpacing
atts = atts.copy() as! UICollectionViewLayoutAttributes
atts.frame.origin.x = rightPv
return atts
}
}
하여 사용할 수 있습니다. 사용자 정의 클래스를 collectionView의 레이아웃에 올바르게 할당 했습니까? – Adeel
질문 해 주셔서 감사합니다 .- 시간이 있다면,이 운동장을 보시기 바랍니다 : https://github.com/JCzz/CollectionView 전반적으로 화면 중심에서보기의 크기를 조정하려고합니다. –
@ ChrisG. 동일한 문제가 있습니다. "LayoutAttributesForItem"이 전혀 실행되지 않는 것을 제외하고는 모든 것이 잘 보입니다. 이유가 확실하지 않습니다. – jnel899