При использовании UIController (для повторного использования ячеек с новой информацией - с другим экземпляром класса модели) и пользовательского UICollectionViewCell во время прокрутки (сверху вниз пальцем) высота метки ячеек изменяется с 54,0 до 84,5 (см. вывод)

Почему это происходит?

Тестовый код

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {

    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "MyItemCollectionViewCell", for: indexPath) as! MyItemCollectionViewCell

    print("uilabel height \(cell.mylabel.frame.height)")

    return cell
}

Вывод

uilabel height 54.0
uilabel height 54.0
uilabel height 54.0
uilabel height 54.0
uilabel height 54.0
uilabel height 54.0
uilabel height 54.0
uilabel height 84.5
uilabel height 84.5
uilabel height 84.5
uilabel height 84.5

< Сильный > Cell

class MyItemCollectionViewCell: UICollectionViewCell {

    @IBOutlet var mylabel: UILabel!

    func setItem(_ item: MyItem) {
        mylabel.text = item.name
    }
}
2
user25 26 Фев 2018 в 14:33

1 ответ

Лучший ответ

Я думаю, что это может быть проблема при перерисовке экрана, представление коллекции не перезагружается. Это похоже на этот пост Ячейка CollectionView, изменяющая размер после прокрутки - AutoLayout.

0
Uddiptta Ujjawal 26 Фев 2018 в 14:52