---
title: Collection views
framework: uikit
role: collectionGroup
role_heading: API Collection
path: uikit/collection-views
---

# Collection views

Display nested views using a configurable and highly customizable layout.

## Overview

Overview A collection view manages an ordered set of content, such as the grid of photos in the Photos app, and presents it visually.

Collection views are a collaboration between many different objects, including: Cells. A cell provides the visual representation for each piece of your content. Layouts. A layout defines the visual arrangement of the content in the collection view. Your data source object. This object adopts the UICollectionViewDataSource protocol and provides the data for the collection view. Your delegate object. This object adopts the UICollectionViewDelegate protocol and manages user interactions with the collection view’s contents, like selection and highlighting. Collection view controller. You typically use a UICollectionViewController object to manage a collection view. You can use other view controllers too, but a collection view controller is required for some collection-related features to work.

## Topics

### View

- [UICollectionView](uikit/uicollectionview.md)
- [UICollectionViewController](uikit/uicollectionviewcontroller.md)

### Data

- [Updating collection views using diffable data sources](uikit/updating-collection-views-using-diffable-data-sources.md)
- [Implementing modern collection views](uikit/implementing-modern-collection-views.md)
- [Building high-performance lists and collection views](uikit/building-high-performance-lists-and-collection-views.md)
- [UICollectionViewDiffableDataSource](uikit/uicollectionviewdiffabledatasource-9tqpa.md)
- [UICollectionViewDataSource](uikit/uicollectionviewdatasource.md)
- [UICollectionViewDataSourcePrefetching](uikit/uicollectionviewdatasourceprefetching.md)
- [NSDiffableDataSourceSnapshot](uikit/nsdiffabledatasourcesnapshot-swift.struct.md)
- [NSDiffableDataSourceSectionSnapshot](uikit/nsdiffabledatasourcesectionsnapshot-swift.struct.md)
- [UIRefreshControl](uikit/uirefreshcontrol.md)

### Cells

- [UICollectionViewCell](uikit/uicollectionviewcell.md)
- [UICollectionViewListCell](uikit/uicollectionviewlistcell.md)
- [UICollectionReusableView](uikit/uicollectionreusableview.md)

### Layouts

- [Implementing modern collection views](uikit/implementing-modern-collection-views.md)
- [Layouts](uikit/layouts.md)

### Selection management

- [Changing the appearance of selected and highlighted cells](uikit/changing-the-appearance-of-selected-and-highlighted-cells.md)
- [Selecting multiple items with a two-finger pan gesture](uikit/selecting-multiple-items-with-a-two-finger-pan-gesture.md)

### Drag and drop

- [Supporting Drag and Drop in Collection Views](uikit/supporting-drag-and-drop-in-collection-views.md)
- [UICollectionViewDragDelegate](uikit/uicollectionviewdragdelegate.md)
- [UICollectionViewDropDelegate](uikit/uicollectionviewdropdelegate.md)
- [UICollectionViewDropCoordinator](uikit/uicollectionviewdropcoordinator.md)
- [UICollectionViewDropPlaceholder](uikit/uicollectionviewdropplaceholder.md)
- [UICollectionViewDropProposal](uikit/uicollectionviewdropproposal.md)
- [UICollectionViewDropItem](uikit/uicollectionviewdropitem.md)
- [UICollectionViewDropPlaceholderContext](uikit/uicollectionviewdropplaceholdercontext.md)
- [UIDataSourceTranslating](uikit/uidatasourcetranslating.md)
- [UICollectionViewPlaceholder](uikit/uicollectionviewplaceholder.md)

## See Also

### Container views

- [Autosizing views for localization in iOS](xcode/autosizing-views-for-localization-in-ios.md)
- [Table views](uikit/table-views.md)
- [UIStackView](uikit/uistackview.md)
- [UIScrollView](uikit/uiscrollview.md)
