UICollectionViewCell размер неправильный при использовании Kingfisher ActivityIndicator - PullRequest
1 голос
/ 01 мая 2020

У меня есть просмотр коллекции, которая загружает изображения с 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 есть ограничения, привязывающие его и к суперпредставлению.

У кого-нибудь есть идеи?

...