#ios #swift #uitableview
#iOS #swift #uitableview
Вопрос:
Я создаю приложение для iOS с помощью Swift, где у меня есть TableView с несколькими ячейками. Мне нужен TableView, в котором каждый набор из трех ячеек имеет границу и между каждым набором из трех ячеек есть небольшой промежуток. Так выглядит каждая ячейка в TableView.
Я хотел бы объединить эффект тени / границу для трех ячеек, чтобы они выглядели как единое целое. Следующая ячейка будет частью нового набора из трех ячеек.
Я хотел бы сделать это, потому что многие приложения отображают табличные представления, подобные тому, что я упоминал выше. Например, Flipkart отображает табличный вид с тремя ячейками в разделе «Музыка», каждая из которых содержит наушники, а после небольшого промежутка отображает «Обувь» с тремя туфлями, занимающими каждую ячейку. Как мне получить аналогичный эффект?
Комментарии:
1. Если вы можете поделиться скриншотом того, что вы хотите, это облегчит ответ на вопрос. Однако вы можете использовать несколько разделов в своем tableview, чтобы каждый раздел содержал только эти три ячейки. Используйте заголовки разделов для разделения разделов.
2. Вы создаете свою собственную пользовательскую ячейку, создав подкласс UITableViewCell. Есть учебные пособия, просто попробуйте погуглить «custom UITableViewCell».
3. это основной результат , который вы хотите получить? Я прошу убедиться, потому что описание ответа займет много времени: D
4. Вот как это выглядит в настоящее время. Опубликую скриншот того, как я хочу, чтобы он выглядел.
Ответ №1:
Я сделал нечто подобное в своем приложении. Подход, который я использовал, заключался в том, чтобы поместить UICollectionView в каждую ячейку табличного представления. Существует отличный учебник о том, как сделать именно это.
Помещение UICollectionView в UITableViewCell в Swift: https://ashfurrow.com/blog/putting-a-uicollectionview-in-a-uitableviewcell-in-swift /
Это должно сработать для вас с несколькими изменениями:
В примере у него есть представление коллекции с горизонтальной прокруткой. Вам понадобится вертикальный вид коллекции с ячейками вида коллекции, которые покрывают всю ширину ячейки табличного представления. Лучшим способом сделать это, скорее всего, будет выбрать как ячейку табличного представления, так и представление коллекции в раскадровке и добавить ограничение «Равной ширины».
Вы также захотите установить высоту ячейки вашего табличного представления равной высоте всего представления коллекции. Если у вас всегда будет ровно 3 элемента в вашем представлении коллекции с фиксированной высотой, вы можете просто жестко задать высоту ячейки вашего табличного представления. Однако, если количество элементов в представлении коллекции изменится для разных ячеек табличного представления, тогда вам захочется добавить ограничение для «Равных высот», аналогично тому, как я описал на предыдущем шаге.
Следует отметить, что, поскольку ваш контент будет отображаться вертикально, вы могли бы достичь того же результата, добавив UITableView (вместо UICollectionView) в каждую ячейку TableView, но это добавляет некоторые сложности, поскольку оба представления таблицы будут вызывать одни и те же методы в вашем файле ViewController.swift. Обходной путь заключается в использовании тегов для определения того, какое табличное представление вызывает метод, но я лично считаю, что проще сделать UITableView вашим родителем, а UICollectionView — вашим дочерним элементом.
Не стесняйтесь оставлять комментарии, которые требуют какой-либо доработки 🙂
Комментарии:
1. Отлично. Я попробую это и дам вам знать.