Tables

A table presents data as a scrolling, single-column list of rows. Use a table to display large or small amounts of information cleanly and efficiently in the form of a list.

Screenshot of the Phone app in CarPlay displaying a list of contacts in a table.

Consider table width. Thin tables can cause truncation and wrapping, making them hard to read and scan quickly at a distance.

Begin showing table content quickly. Don’t wait for extensive table content to load before showing something. Fill onscreen rows with textual data immediately and show more complex data—such as images—as it becomes available. This technique gives people useful information right away and increases the perceived responsiveness of your app. In some cases, showing stale, older data may make sense until fresh, new data arrives.

Communicate progress as content loads. If a table’s data takes time to load, show a spinning activity indicator to reassure people that your app is still running.

Update table content regularly to reflect newer data, but don’t change the scrolling position. Add new content to the beginning or end of the table, and let people scroll to it when they’re ready. Some apps display an indicator when new data has been added, and provide a control for jumping right to it.

For developer guidance, see UITableView.

Table Rows

You use standard table cell styles to define how content appears in table rows.

Screenshot of the Music app in CarPlay showing various music categories in a table. One row of the table, which contains only a single line of text, is highlighted.

Default. An optional image on the left side of the row, followed by a left-aligned title. It’s a good option for displaying items that don’t require supplementary information. For developer guidance, see the UITableViewCellStyleDefault constant of UITableViewCell.

Screenshot of the Music app in CarPlay showing a list of Apple-recommended playlists in a table. One row of the table, which contains album cover art on the left, and a left-aligned title and subtitle in the middle, is highlighted.

Subtitle. A left-aligned title on one line and a left-aligned subtitle on the next. This style works well in a table where rows are visually similar. The additional subtitle helps distinguish rows from one another. For developer guidance, see the UITableViewCellStyleSubtitle constant of UITableViewCell.

Screenshot of the Phone app in CarPlay showing a list of favorite contacts in a table view. One row of the table, which contains an image on the left, a left-aligned title in the middle, and a right-aligned subtitle on the right, is highlighted.

Value 1. A left-aligned title with a right-aligned subtitle in a lighter font on the same line. For developer guidance, see the UITableViewCellStyleValue1 constant of UITableViewCell.

Screenshot of the Phone app in CarPlay showing a highlighted Home phone number for a contact in a table view. One row of the table, which contains a left-aligned sub-title on the left and a right-aligned title on the right, is highlighted.

Value 2. A right-aligned title, followed by a left-aligned subtitle in a lighter font on the same line. For developer guidance, see UITableViewCellStyleValue2 constant of UITableViewCell.

Keep text succinct to avoid clipping. Truncated words and phrases are hard to scan and decipher. Text truncation is automatic in all table cell styles, but it can present more or less of a problem depending on which cell style you use and where truncation occurs.

Provide feedback when a selection is made. People expect a row to highlight briefly when its content is tapped. Then, people expect a new view to appear or something to change, such as a checkmark appearing, that indicates a selection has been made.

Design a custom table cell style for nonstandard table rows. Standard styles are great for use in a variety of common scenarios, but some content or your overall app design may call for a heavily customized table appearance. To learn how to create your own cells, see Customizing Cells in Table View Programming Guide for iOS.

For developer guidance, see UITableViewCell.