У меня есть просмотр коллекции, которая загружает изображения с URL через библиотеку kingfisher. Я пытаюсь создать макет из 3 столбцов, и это работает нормально, пока я не добавляю loadingIndicator через kingfisher.
Мой метод cellForRowAt выглядит следующим образом:
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let item = mediaItems!.data![indexPath.row]
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "PictureCell", for: indexPath) as! PictureCell
let url = URL(string:item.mediaURL!)!
cell.thumbNail.kf.setImage(with:url)
//cell.thumbNail.kf.indicatorType = .activity
return cell
}
Если я раскомментирую indicatorType
выравнивает, чтобы уменьшить все ячейки до размера индикатора.
Я использую следующее в моем flowLayoutDelegate:
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
let yourWidth = (collectionView.bounds.width/3.0) - 3
let yourHeight = yourWidth
return CGSize(width: yourWidth, height: yourHeight)
}
Мой метод делегата размера вызван и возвращает правильный размер, но при отображении все элементы сокращаются, помещая более 3 элементов в строке (размер по умолчанию равен 50 по ширине). У collectionView есть ограничения, привязывающие его и к суперпредставлению.
У кого-нибудь есть идеи?