Сбор информации о первой проблеме размера ячейки - PullRequest
0 голосов
/ 27 августа 2018

Мне нужно скрыть некоторые ячейки uicollectionview, основываясь на моем ответе API.

Я устанавливаю нулевой размер ячейки в методе sizeForItemAtIndexPath коллекции viewview на основе значения моего ответа json.

, нодаже после установки нулевого размера ячейка с нулевым индексом всегда видна.

Я не могу отфильтровать и удалить данные из массива.мне нужны эти данные для некоторых операций.

мой метод источника данных UICollectionView.

func numberOfSections(in collectionView: UICollectionView) -> Int {
    return 5
}
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
    return 5
}

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell", for: indexPath) as! testCell
    cell.lblTest.text = "\(indexPath.item)"
    return cell
}

мой метод делегата макета потока.

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
        if (indexPath.section == 0 && indexPath.item == 0) || (indexPath.section == 1 && indexPath.item == 0){
            return CGSize(width: 0, height: 0)
        }
        return CGSize(width: 50, height: 50)
    }

ожидаемый результат - ячейка на 0-м местеИндекс в 0 и 1 разделе скрыт, но он все еще отображается.enter image description here

Ответы [ 2 ]

0 голосов
/ 27 августа 2018

Вы не должны делать это, пытаясь установить размер равным 0. Если вы установите его равным 0, основной код читает это как попытку автоматически изменить его размер для вас (вот почему установка его на небольшое значение close до 0, похоже, почти работает). Что вы на самом деле хотите сделать, так это просто настроить источник данных. Поэтому, когда запрашивается количество элементов, возвращайте сумму без элементов, которые вы хотите скрыть, и cellForItem должен просто учитывать, что элемента нет.

0 голосов
/ 27 августа 2018

Вы должны установить его на число, близкое к 0, например, 0,1, 0,01.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...