The iPhone SDK provides an easy-to-code standard for creating
consistent user interfaces. The UITableView class is used in many
iPhone applications. Most applications that present information to you
in rows that you can tap to slide a new page over to see details use a
UITableView to do the magic. Once you have a UITableView setup, you can
easily add the little accessory arrow icons to the right side of the
table cells by following the steps in this Tech-Recipe.
At this point, you need to have a working UITableView-based application.
If you aren’t at this point, you’ll need to take a few steps back and
check with the official Apple iPhone SDK documentation.
The simplest case is adding an accessory icon to the right of all
cells in the table. To do this, edit the source file of the table view
you want to change and add the following method:
- (UITableViewCellAccessoryType)tableView:(UITableView *)tv accessoryTypeForRowWithIndexPath:(NSIndexPath *)indexPath
{
return UITableViewCellAccessoryDetailDisclosureButton;
}
Yeah, that’s a keyboard-full, but it’s not that bad. Because your
table view class is the delegate of your actual table view, implementing
this method of the UITableViewController class will automatically
affect the cells in your table. No other changes are needed to make this
work. Very cool.
If you don’t want to show the accessory image for every cell in the
table, you’ll need to implement some logic in this method that takes the
NSIndexPath parameter (which tells you which row in which section is
being asked about) and responds appropriately.
There are three standard accessory images that can be used by this
method. Each image is shown below with the matching
UITableViewCellAccessoryType (the example uses shows a Disclosure
indicator image because it returns
UITableViewCellAccessoryDisclosureIndicator.
Disclosure indicator
UITableViewCellAccessoryDisclosureIndicator
Used to indicate that tapping the cell will slide in a new table view one level down in the hierarchy.
Detail disclosure button
UITableViewCellAccessoryDetailDisclosureButton
This button indicates that tapping the cell will reveal a detail view of that item.
Checkmark
UITableViewCellAccessoryCheckmark
Indicates that a row has been selected by the user.
Nothing
UITableViewCellAccessoryNone
This is the default value for the cell accessory indicating that no accessory should be shown.
This isn’t a brain surgery level Tech-Recipe and this information is,
of course, covered in the official documentation, but I keep forgetting
the method name and knew it would be easier to lookup here than in the
docs. I hope someone else finds it helpful, too.