Это зависит от требований. От того, как работает приложение, зависит, какой тип пользовательского интерфейса следует интегрировать в приложение.
Люди в основном используют его UICollectionview
для создания типов пользовательского интерфейса с несколькими изображениями, отображаемыми в сетке. Это будет иметь сложную логику UITableView
, но с UICollectionview
этим будет легко.
При использовании UICollectionview
вам не нужно устанавливать кнопки с тегами или другими вещами, получая значения выбранных элементов. Вы можете просто войти -(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath
и войти UITableViewDelegate
:
`-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath`
Вы получаете выбранную строку вместо элемента, поэтому для создания сетки или измененных элементов используйте UICollectionview
лучше всего использовать.
Люди используют подробную информацию о каждом элементе, UITableView
потому что он показывает больше информации о каждом элементе.
Документы Apple:
Описание класса UICollectionView
Класс UICollectionView управляет упорядоченным набором элементов данных и представляет их с помощью настраиваемых макетов. Представления коллекции обеспечивают ту же общую функцию, что и представления таблиц, за исключением того, что представление коллекции может поддерживать не только макеты с одним столбцом. Представления коллекций поддерживают настраиваемые макеты, которые можно использовать для реализации многоколоночных сеток, мозаичных макетов, круговых макетов и многого другого. Вы даже можете динамически изменять макет представления коллекции, если хотите.
Справочник по классу UITableView
Табличное представление отображает список элементов в одном столбце. UITableView - это подкласс UIScrollView, который позволяет пользователям прокручивать таблицу, хотя UITableView допускает только вертикальную прокрутку. Ячейки, составляющие отдельные элементы таблицы, являются объектами UITableViewCell; UITableView использует эти объекты для рисования видимых строк таблицы. Ячейки имеют контент - заголовки и изображения - и могут иметь рядом с правым краем дополнительные представления. Стандартные вспомогательные представления - это индикаторы раскрытия или кнопки раскрытия подробностей; первый ведет к следующему уровню в иерархии данных, а второй ведет к подробному представлению выбранного элемента. Вспомогательные представления также могут быть элементами управления фреймворка, такими как переключатели и ползунки, или могут быть настраиваемыми представлениями. Табличные представления могут входить в режим редактирования, в котором пользователи могут вставлять, удалять и изменять порядок строк таблицы.
Вот мои критерии:
Если UITableView может это сделать, используйте его
Если для UITableView требуется много кода или он вообще не может этого сделать, используйте UICollectionView.
Перед принятием решения вы должны учитывать ограничения на UITableView: это единственный столбец. И вы можете настраивать только ячейки, но не фон разделов и тому подобное. Так что, если у вас есть простой список вещей без лишних излишеств - в основном это похоже на стандартное представление iOS - тогда используйте UITableview. Если у вас есть настраиваемые вставки или рамка вокруг каждого раздела, используйте UICollectionView.
На самом деле я рассматриваю UICollectionView для всех вещей просто потому, что это очень дорого, когда вы начинаете разрабатывать свое представление в виде табличного представления, а потом выясняете, что он не может сделать то единственное, что вам нужно. 1-й опыт;)Отредактируйте после еще большего опыта с двумя: не обращайте внимания на последний абзац. UICollectionView требует большого количества шаблонного кода, чтобы он работал как UITableView. Используйте UICollectionView только тогда, когда это действительно необходимо. ;)
источник
Для простых списков и навигации вперед / назад используйте
UITableView
.Если вам нужна высокая степень настраиваемости, используйте
UICollectionView
.Вообще говоря, при разработке программного обеспечения лучше всего выбирать подход, который представляет собой «Простейший возможный шаг».
РЕДАКТИРОВАТЬ: Начиная с iOS 14,
UICollectionView
теперь можно делать списки, и теперь это рекомендуемый подход. См. Этот сеанс на WWDC20 для получения дополнительной информации и деталей реализации: https://developer.apple.com/videos/play/wwdc2020/10026/источник
Согласно моей точке зрения, основное различие между collectionView и tableView заключается в том, что
Надеюсь, это поможет тебе.
источник
Если вы выбрали UITableView для iPhone, убедитесь, что вы сначала продумали свою стратегию для iPad. Если вам нужен макет для iPad, вы можете захотеть, чтобы этот макет с одним столбцом превратился в сетку.
источник
Хотя это не обязательно, я всегда использую представление коллекции. Таким образом, я могу легко адаптировать представление моих коллекций к разным разрешениям. Плюс в том, что он готов быстро добавлять новые типы ячеек при рефакторинге в будущем.
Я не вижу смысла в просмотрах таблиц. Представление коллекции очень просто использовать для представления таблицы. ИМО.
источник
Это полностью зависит от того, как будут отображаться ваши данные. Как уже упоминалось многими выше, если вам нужен только один набор данных, и это тоже несложно,
UITableView
используйте elseUICollectionView
.UICollectionView
удобна для настройки.Если вы имеете дело с несколькими высотами ячеек или около того, тогда действуйте
UICollectionView
.источник
По моему личному опыту, эти два элемента следует сравнивать только небрежно.
TableView
TableView - это элемент пользовательского интерфейса, предназначенный для отображения данных в формате списка. Есть определенные функции, которые входят в стандартную комплектацию UITableView, например:
Вышеупомянутые элементы повышают удобство использования данных при отображении и взаимодействии в формате списка. Например, просмотр писем.
CollectionView
CollectionView - это элемент пользовательского интерфейса, предназначенный для отображения содержимого с использованием настраиваемого макета (обычно всего, что не является списком). CollectionViews улучшают функциональность отображения данных в полностью индивидуализированных стилях макета, а также динамически изменяют макеты на лету. Вот несколько примеров:
CollectionViews также допускает множественный выбор.
Вывод
Как видно из вышеизложенного, оба имеют совершенно разные варианты использования и предназначены для улучшения разработки и удобства использования собственных конкретных наборов данных.
Если вы хотите отобразить что-либо в стиле списка со следующими взаимодействиями: - Добавление - Удаление - Изменение порядка Затем UITableView упростит этот процесс, предоставив поддержку прямо из коробки.
В остальном вам следует воспользоваться преимуществами CollectionView, поскольку у вас больше гибкости.
источник
Оба зависят от требований. Табличные представления также поддерживают множество сценариев редактирования. Эта поддержка не реализована в классах представления коллекции. Если вы выполняете преобразование из табличного представления, основанного на этих методах, ожидайте, что вам придется сделать небольшую дополнительную тяжелую работу в представлении коллекции. Заголовки разделов представления коллекции можно размещать в любом месте представления. и UITableView не нужно устанавливать кнопки с тегами или другими вещами, получая значения выбранных элементов.
источник
На практике все используют UICollectionView, с которым я сталкивался, когда им нужен только UITableView. «Он одномерный. Он идет вверх и вниз. Почему вы добавляете ненужные методы делегирования для макета И данных?». Однажды я потратил дополнительные 2 часа, помогая стартапу выяснить, почему их UICollectionViewCell раздался, потому что владелец, который не читал ни руководство по анимации, ни HIG, ни руководство по UICollectionView, решил использовать его и добавить переменную высоту и анимацию. Излишне говорить, что у него разболелась голова и он потерял много времени из-за не критичной для бизнеса проблемы, которую он мог бы избежать, просто используя ячейку таблицы, поскольку нет дополнительного делегата макета + перо.
Позвольте мне прямо сказать, я полностью за UICollectionView, когда ваши данные и дисплей нуждаются в этом. Они очень сильные. Но на практике большинство людей, которых я видел, использовали их в списках.
Это вызывает еще один недостаток. Они также используются в коротких постоянных списках, которые никогда не изменятся. В этом случае просто создайте Xib. Или напишите собственный вид, который их складывает. Зачем? Потому что вам не нужно управление памятью для 5 наборов этикеток с помощью кнопки или переключателя. Если они могут измениться, то да, используйте список. Если вам нужна физика, то UICollectionView хорошо работает с некоторыми классными эффектами. Но действительно ли вам нужно добавить 5 методов делегата и систему макета для 5 меток, которые никогда не будут перемещаться?
Кроме того, я не забываю, что iOS теперь тоже имеет собственное представление стекирования. Мне никогда не удается заставить его деформироваться так, как я хочу, хотя я достаточно разбираюсь в 2D и анимационных системах, поэтому никогда не использую встроенную.
Все, что я говорю, это определите свои требования. Возможно, вам не нужно ни одно из них, если ваш пользовательский интерфейс не добавляет / не удаляет элементы и не обновляется. Или, может быть, вы хотите написать карточную игру и выбросить их виртуально на столе, а затем использовать UICollectionView с физической системой для ее руководства по макету.
источник
Исходя из наших потребностей, мы выбираем TableView или CollectionView.
Пример:
источник
У меня была эта проблема в моем текущем проекте. Что использовать. В моем случае это было действительно просто. Мне было нужно и то, и другое. Мне нужно, чтобы мое представление выглядело как UITableView, а также чтобы изменить его изменение / макет. Итак, использовался UICollectionView. Я также использую UITableView везде, где мне не нужна дополнительная настройка. Поскольку UiTableView поставляется с макетом по умолчанию, который включает изображения и текст, я использую его для простоты.
источник
Исходя из наших требований, мы выбираем представление UITableView или UICollection.
Если мы хотим отображать изображения или элементы в виде сетки или если нам нужна дополнительная настраиваемость, мы используем UICollectionview.
Для перечисления каждого элемента с подробностями и подробностями мы используем UITableView.
UICollectionView: класс UICollectionView управляет упорядоченной коллекцией элементов данных и представляет их с помощью настраиваемых макетов. Представления коллекции обеспечивают ту же общую функцию, что и представления таблиц, за исключением того, что представление коллекции может поддерживать не только макеты с одним столбцом.
UITableView: представление таблицы отображает список элементов в одном столбце. UITableView - это подкласс UIScrollView, который позволяет пользователям прокручивать таблицу, хотя UITableView допускает только вертикальную прокрутку.
источник
В соответствии с моим представлением для отображения Grid View используйте представление UI Collection View. Все другие представления списка используют UITable View
источник
Лично я думаю, что UICollectionView может выполнять большую часть работы, которую может выполнять UITableview. ну в то же время пользоваться им сложнее.
Я предлагаю вам использовать UICollectionView как TableView на тот случай, если ваш менеджер изменит требования в будущем.
источник