Для создания collectionView в tableView вам понадобится несколько шагов. Вот подробное объяснение:
1. Создайте новый проект в Xcode, выбрав шаблон "Single View Application".
2. Откройте файл Main.storyboard и перетащите TableView на главный экран.
3. Установите dataSource и delegate для tableView. Для этого перетащите связь от TableView к файлу ViewController с помощью ctrl-клика и выберите "dataSource" и "delegate".
4. Создайте новый UITableViewCell под collectionView. Щелкните правой кнопкой мыши на группу файлов проекта и выберите "New File". Выберите шаблон "Cocoa Touch Class" и установите имя "CollectionViewCell". Помимо этого, убедитесь, что выбран язык Swift и отмечен флажок "Also create XIB file". Нажмите кнопку "Next" и затем "Create". В новом файле CollectionViewCell.xib установите Collection View Cell как Content view.
5. Откройте файл ViewController.swift и добавьте следующий код:
import UIKit class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource, UICollectionViewDelegate, UICollectionViewDataSource { @IBOutlet weak var tableView: UITableView! override func viewDidLoad() { super.viewDidLoad() // Установка dataSource и delegate для tableView tableView.dataSource = self tableView.delegate = self // Регистрация xib-файла CollectionViewCell tableView.register(UINib(nibName: "CollectionViewCell", bundle: nil), forCellReuseIdentifier: "CollectionViewCell") } // MARK: - UITableViewDataSource func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return 1 // Замените это значение на количество ячеек, которые вы хотите отобразить в таблице } func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCell(withIdentifier: "CollectionViewCell", for: indexPath) as! CollectionViewCell return cell } // MARK: - UITableViewDelegate func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { return 200 // Замените это значение на высоту, которая должна быть установлена для ячейки } // MARK: - UICollectionViewDataSource func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { return 10 // Замените это значение на количество элементов, которые вы хотите отобразить в коллекции внутри ячейки } func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "Cell", for: indexPath) // Настройте ячейку коллекции здесь return cell } // MARK: - UICollectionViewDelegate func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { // Обработка нажатий на элементы коллекции здесь } }
Раскройте Assistant editor (это кнопка с изображением двух перекрещенных кружев в правом верхнем углу Xcode) и убедитесь, что файл Main.storyboard открыт. Плотно свяжите TableView с Outlet с именем tableView, перетаскив его на код в ViewController.swift. Затем, на XIB-файле CollectionViewCell.xib (его можно найти в группе файлов проекта) щелкните правой кнопкой мыши и перетащите Outlet Collection View с именем "collectionView" на код в CollectionViewCell.swift.
6. Настройте внешний вид ячейки коллекции в файле CollectionViewCell.xib, добавив необходимые UI элементы, кастомизировав их и проставив им правильные Constraints. Кроме того, не забудьте установить Identifier для ячейки коллекции в Attributes Inspector (можно выбрать любое уникальное имя).
7. Запустите приложение на симуляторе или устройстве для проверки. Вы должны увидеть tableView с collectionView в каждой ячейке таблицы.
Это базовая реализация collectionView в tableView. Вы можете настроить количество ячеек, высоту ячеек, а также настроить ячейку коллекции по вашему усмотрению. Не забудьте также реализовать обработку событий нажатий элементов коллекции и другую функциональность согласно вашим требованиям.