У меня есть uicollectionview с расширяемыми uicollectionviewcells.На iPhone у каждой строки есть 1 столбец, проблем нет.Но на iPad в строке есть 2 столбца, и после расширенной ячейки возникает проблема.
Вот снимок экрана с ячейками. не расширен
расширен
Я перезагружаю элементы при нажатии кнопки со стрелкой
self.collectionView.reloadItems(at: [indexPath])
sizeforitem func
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
let height = store.pickList[indexPath.row].expanded ? CGFloat(414) : CGFloat(168)
var width = CGFloat(0)
if Constants.isPad { width = (self.view.frame.size.width - 25 - 12 - 12) / 2 }
else { width = self.view.frame.size.width - 12 - 12 }
return CGSize(width: width, height: height)
}
CellforRowAt:
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "detailCell", for: indexPath) as! DetailCollectionViewCell
.....
if data.expanded {
UIView.animate(withDuration: 0.25, animations: {
cell.bottomView.frame = CGRect(x: 0, y: 372, width: cell.frame.width, height: 42)
cell.expandArrow.setBackgroundImage(UIImage(named: "ok2"), for: .normal)
}, completion: { result in
UIView.animate(withDuration: 0.2, animations: {
cell.detailView.alpha = 1
})
})
}
else {
UIView.animate(withDuration: 0.25, animations: {
cell.detailView.alpha = 0
}, completion: { result in
UIView.animate(withDuration: 0.2, animations: {
cell.expandArrow.setBackgroundImage(UIImage(named: "ok"), for: .normal)
cell.bottomView.frame = CGRect(x: 0, y: 124, width: cell.frame.width, height: 42)
})
})
}
return cell
}
Когда я расширяю ячейку, строка расширяется также.Что не так с моей реализацией?Спасибо