UICollectionViewCell в UICollectionViewFlowLayout повторяющихся строк - PullRequest
0 голосов
/ 04 июля 2019

ОТВЕТИТЬ от Starsky
Я пытаюсь создать представление с несколькими горизонтальными прокручиваемыми списками, заполненными 12 ячейками в одном ряду. Проблема в том, что ячейки отображаются «в два ряда в одном ряду». Для пояснения строка разбита на два ряда по 6 ячеек, расположенных друг над другом.

Представление представляет собой UITableView, где каждая строка представляет собой UITableViewCell. UITableViewCell имеет UICollectionViewFlowLayout с горизонтальным направлением прокрутки. UITableViewCell содержит UICollectionView. UICollectionView заполняется списком UICollectionViewCell: s, зарегистрированным из UINib (из файла XIB).

Все загружено правильно и работает нормально, но UICollectionViewCell: s укладываются в две строки по 6 ячеек в горизонтальном списке прокрутки, который должен состоять из одной строки из 12 ячеек.

Я могу добавить еще много кода, но я не знаю, в чем проблема, возможно, это связано с dequeueReusableCell, см. Прикрепленный код ниже?

Обратите внимание, я пытался добавить нечетное количество элементов. Тогда верхний ряд на одну клетку длиннее нижнего, вот так. Похоже, это обвивает две строки.
фактический

Х Х Х Х Х Х Х
Х Х Х Х Х Х

ожидаемый

X X X X X X X X X X X X X X

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let item = items[indexPath.row]
        if let cell = tableView.dequeueReusableCell(withIdentifier: HorizontalListTableViewCell.identifier, for: indexPath) as? HorizontalListTableViewCell {
            cell.item = item
            return cell
        }
    }
    return UITableViewCell()
}


Ожидаемые результаты:

Х Х Х Х Х Х Х Х Х Х Х Х Х

Х Х Х Х Х Х Х Х Х Х Х Х Х

X X X X X X X X X X X X X



Фактические результаты:

X X X X X X
Х Х Х Х Х Х

X X X X X X
Х Х Х Х Х Х

X X X X X X
Х Х Х Х Х Х

Где X - это ячейка в прокручиваемом списке.

...