 for examples of grouped tables. Table views in the grouped style cannot have an index.
Many methods of
NSIndex objects as parameters and return values.
UITable declares a category on
NSIndex that enables you to get the represented row index (
row property) and section index (
section property), and to construct an index path from a given row index and section index (
init(row: method). Especially in table views with multiple sections, you must evaluate the section index before identifying a row by its index number.
UITable object must have an object that acts as a data source and an object that acts as a delegate; typically these objects are either the application delegate or, more frequently, a custom
UITable object. The data source must adopt the
UITable protocol and the delegate must adopt the
UITable protocol. The data source provides information that
UITable needs to construct tables and manages the data model when rows of a table are inserted, deleted, or reordered. The delegate manages table row configuration and selection, row reordering, highlighting, accessory views, and editing operations.
When sent a
set message (with a first parameter of
true), the table view enters into editing mode where it shows the editing or reordering controls of each visible row, depending on the
editing of each associated
UITable. Clicking on the insertion or deletion control causes the data source to receive a
table message. You commit a deletion or insertion by calling
insert, as appropriate. Also in editing mode, if a table-view cell has its
shows property set to
true, the data source receives a
table message. The data source can selectively remove the reordering control for cells by implementing
UITable caches table-view cells for visible rows. You can create custom
UITable objects with content or behavioral characteristics that are different than the default cells; A Closer Look at Table View Cells explains how.
UITable overrides the
layout method of
UIView so that it calls
reload only when you create a new instance of
UITable or when you assign a new data source. Reloading the table view clears current state, including the current selection. However, if you explicitly call
reload, it clears this state and any subsequent direct or indirect call to
layout does not trigger a reload.
If you assign a value to a table view’s
restoration property, it attempts to preserve the currently selected rows and the first visible row. The table’s data source may adopt the
UIData protocol, which provides a way to identify a row’s contents independent of that row’s position in the table. If the table’s data source adopts the
UIData protocol, the data source will be consulted when saving state to convert the index paths for the top visible row and any selected cells to identifiers. During restoration, the data source will be consulted to convert those identifiers back to index paths and reestablish the top visible row, and reselect the cells. If the table’s data source does not implement the
UIData protocol, the scroll position will be saved and restored directly, as will the index paths for selected cells.
For more information about how state preservation and restoration works, see App Programming Guide for iOS.