Когда использовать UICollectionView вместо UITableView?
Я обнаружил, что UICollectionView
похож на обновленную версию UITableView
, введенную в iOS6, но когда я должен выбрать UICollectionView
вместо UITableView
?
Есть приложения, использующие UITableView
, если UICollectionView
может делать что-либо UITableView
, то почему люди все еще используют UITableView
? Есть ли разница в производительности?
Спасибо!
Ответы
Ответ 1
Это зависит от требований. Как потоки приложений определяют, какой тип пользовательского интерфейса должен интегрироваться в приложение.
В основном пользователи используют UICollectionview
для создания типов пользовательских интерфейсов с несколькими изображениями, отображаемыми в сетке. Это имело бы сложную логику с помощью UITableView
, но с UICollectionview
было бы легко.
При использовании UICollectionview
вам не нужно устанавливать кнопки с тегами или другими вещами, получая выбранные значения элементов. Вы можете просто получить -(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath
и в UITableViewDelegate
:
`-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath`
Вы получаете выбранную строку вместо элемента, поэтому для создания сетки или измененных элементов лучше использовать UICollectionview
.
Для информации о листинге каждого элемента люди используют UITableView
, потому что он показывает больше информации о каждом элементе.
Apple Docs:
Ссылка на класс UICollectionView
Класс UICollectionView управляет упорядоченным набором элементов данных и представляет их с помощью настраиваемых макетов. Представления коллекции предоставляют ту же общую функцию, что и представления таблиц, за исключением того, что представление коллекции способно поддерживать не только одноколонные макеты. Представления коллекции поддерживают настраиваемые макеты, которые можно использовать для реализации многоколоночных сеток, мозаичных макетов, круговых макетов и многих других. Вы можете даже изменить макет представления коллекции динамически, если хотите.
Ссылка на класс UITableView
В представлении таблицы отображается список элементов в одном столбце. UITableView - это подкласс UIScrollView, который позволяет пользователям прокручивать таблицу, хотя UITableView позволяет только вертикальную прокрутку. Клетки, содержащие отдельные элементы таблицы, являются объектами UITableViewCell; UITableView использует эти объекты для рисования видимых строк таблицы. Ячейки имеют контент-заголовки и изображения и могут иметь рядом с правым краем аксессуарные виды. Стандартные виды аксессуаров - это индикаторы раскрытия информации или кнопки раскрытия подробностей; первый приводит к следующему уровню в иерархии данных, а последний приводит к детальному представлению выбранного элемента. Аспекты аксессуаров также могут быть элементами управления структурой, такими как переключатели и слайдеры, или могут быть настраиваемыми представлениями. Представления таблиц могут вводить режим редактирования, в котором пользователи могут вставлять, удалять и изменять порядок строк таблицы.
Ответ 2
Для простых списков и навигации вперед/назад navigtaion используйте UITableView
.
Если вам нужна высокая степень настраиваемости, используйте UICollectionView
.
Вообще говоря, при разработке программного обеспечения лучше всего выбрать подход, который представляет "The Simplest Possible Thing".
Ответ 3
Здесь мои критерии:
-
Если UITableView может это сделать, используйте его
-
Если UITableView нуждается в большом количестве кода для этого или вообще не может этого сделать, используйте UICollectionView.
Вы должны рассмотреть ограничения на UITableView перед принятием решения: это один столбец. И вы можете настраивать только ячейки, но не фонов раздела и т.д. Так что, если у вас есть верный список вещей без лишних излишеств - это похоже на стандартное представление iOS для болота, в основном - тогда используйте UITableview. Если у вас есть пользовательские вставки или граница вокруг каждого раздела, используйте UICollectionView.
Я действительно рассматриваю UICollectionView для всех вещей просто потому, что это очень дорого, когда вы начинаете разрабатывать свое представление в виде табличного представления, а затем узнаете, что он не может сделать то, что вам нужно. Опыт первой руки;)
Редактировать после еще большего опыта с двумя: проигнорировать этот последний абзац. UICollectionView требует много кода шаблона, чтобы он работал как UITableView. Используйте UICollectionView только тогда, когда это действительно необходимо.;)
Ответ 4
Согласно моей точке зрения, основное отличие между collectionView и tableView заключается в том, что
TABLEVIEW → показать список элементов только в одном столбце.
COLLECTION-VIEW → показать список элементов в нескольких столбцах.
Надеюсь, это поможет вам.
Ответ 5
Если вы выберете UITableView для iPhone, убедитесь, что вы сначала рассмотрели свою стратегию iPad. Если вам нужен макет для iPad, вы можете захотеть, чтобы одноколоночный макет стал сеткой.
Ответ 6
Оба зависят от требований. Представления таблиц также поддерживают множество сценариев редактирования. Эта поддержка не была реализована в классах Collection View.
Если вы переходите из табличного представления, которое опирается на эти методы, ожидайте сделать небольшой дополнительный тяжелый подъем в коллекции.
Заголовки заголовка Collection View могут быть размещены в любом месте представления.
и UITableView не нужно устанавливать кнопки с тегами или другими вещами, получая выбранные значения элементов.
Ответ 7
Хотя это не требуется, я всегда использую коллекцию. Таким образом, я могу легко адаптировать, как мои коллекции представлены для разных резолюций. Плюсом является то, что он готов быстро добавлять новые типы ячеек при рефакторинге в будущем.
Я не вижу смысла в табличных представлениях. Очень просто использовать представление коллекции для представления таблицы. ИМО.
Ответ 8
Его полностью зависит от того, как ваши данные будут показаны.
Как упоминалось выше, если вам требуется только один набор данных, и это слишком сложно, перейдите в UITableView
else use UICollectionView
.
UICollectionView
удобна для настройки.
Если вы имеете дело с несколькими высотами ячеек или около того, перейдите к UICollectionView
.
Ответ 9
В соответствии с нашей потребностью мы выбираем TableView или CollectionView.
Пример:
Для контактов телефона tableView - лучший вариант.
Для фотогалереи лучшим вариантом будет просмотр коллекции.
Ответ 10
У меня была эта проблема в моем текущем проекте. Что использовать. В моем случае это было просто на самом деле. Мне нужны были оба. Мне понадобилось мое представление, чтобы выглядеть как UITableView, а также изменить его изменение/макет. Итак, UICollectionView был использован. Я также использую UITableView везде, где мне не нужна дополнительная настройка. Поскольку UiTableView поставляется с макетом по умолчанию, который включает в себя изображения и текст - я использую его для простоты.
Ответ 11
В соответствии с нашим требованием мы выбираем представление UITableView или UICollection.
Если мы хотим отображать изображения или элементы в типе сетки, или если нам нужна дополнительная настройка, мы используем UICollectionview.
Для перечисления каждого элемента с деталями и подзадачами мы используем UITableView.
UICollectionView:Класс UICollectionView управляет упорядоченным набором элементов данных и представляет их с помощью настраиваемых макетов. Представления коллекции предоставляют ту же общую функцию, что и представления таблиц, за исключением того, что представление коллекции способно поддерживать не только одноколонные макеты.
UITableView: В представлении таблицы отображается список элементов в одном столбце. UITableView - это подкласс UIScrollView, который позволяет пользователям прокручивать таблицу, хотя UITableView допускает только вертикальную прокрутку.