Возможно ли иметь UITableView под UICollectionView? - PullRequest
2 голосов
/ 02 июля 2019

Короче говоря.У меня есть ViewController, который имеет ColletionView, который является основным компонентом страницы.CollectionView имеет 2 многократно используемых ячейки: верхний и нижний колонтитулы.Я хотел бы иметь TableView внутри нижнего колонтитула, но это не возможно, я получаю следующую ошибку, когда пытаюсь подключить TableView:

"Недопустимая конфигурация: выход tableView из ViewController в UITableView недопустим.не может быть подключен к повторяющемуся контенту. "

Мой совет: я хочу достичь этого совершенно неверным способом.

Я хочу добиться следующего:

enter image description here

Ответы [ 2 ]

0 голосов
/ 02 июля 2019

[РЕШИТЬ]

Решение было следующим: я создал файл CollectionReusableView для нижнего колонтитула, когда @karem_gohar сказал, что передал следующее:

footer.tableView.delegate = footer.self footer.tableView.dataSource = footer.self

Я подключил tableView к CollectionReusableView, создал массив для проверки и заполнил tableView элементами массива.

Ps.: Я сделал TableViewCell и связал с ним метку. Метка показала элемент массива.

0 голосов
/ 02 июля 2019

Полагаю, вы зарегистрировали перо нижнего колонтитула / заголовка следующим образом:

segmentCollectionView.register(UINib(nibName: /* CellNibName */, bundle: nil), forSupplementaryViewOfKind: UICollectionView.elementKindSectionFooter, withReuseIdentifier: /* CellId */)

, а затем удалите клетку из очереди вот так

func collectionView(_ collectionView: UICollectionView, viewForSupplementaryElementOfKind kind: String, at indexPath: IndexPath) -> UICollectionReusableView {
    if kind == UICollectionView.elementKindSectionFooter {
        let cell = collectionView.dequeueReusableSupplementaryView(ofKind: kind, withReuseIdentifier: /* CellId */, for: indexPath) as! /* Your Class */
    } 
    else {
    }
}
  • так что хитрость заключается в том, что ваш зарегистрированный класс ячеек в нижнем колонтитуле вы можете перейти к файлу xib и добавить UITableView внутри ссылки / * Ваш класс * /
  • ссылка UITableView in the cell class not the UIViewController class that contains the UICollectionView`
  • затем передайте данные, которые вы хотите, когда вы снимаете очередь с ячейки и выполняете все свои операции внутри класса ячейки
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...