iPhone Programming: Set UITableView Accessory Arrow Style
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.






seyont said on October 13, 2008
did you mean ‘UITableViewCellAccessoryDetailCheckmark’?
Quinn McHenry said on October 14, 2008
Whoo! Nice catch of my dysclipboardpastia syndrome. I fixed the recipe accordingly. Thank you!
Mr Burns said on March 26, 2009
Thanks it was more helpfull to google>Click this site> =Done! rather than go through the documentation
-
Nekbeth said on May 5, 2009
Yeahh.. thanks a lot.. I’m very new to iphone development and I just could not find the way to implement a simple disclosure accessory arrow like this. Some books just may find it so easy or logical that they forget to explain it.
Thanks :)
Romain said on June 20, 2009
“I hope someone else finds it helpful, too.”
Yes, I did :-)
Thanks
Rob said on July 27, 2009
Thanks! It may seem simple, but as others as have said, you site is easier to search / find than the documentation.
Much appreciated!
Anonymous said on August 12, 2009
Thanks, saved some of my time instead of roaming around in the net in google engine
Kalle said on March 1, 2010
Just a note that this method is deprecated and will be invalid in future releases. *continues digging for non-deprecated solution* :) Thanks though, worked fine except for that deprecation part.
-Kalle.
paul_sns said on May 31, 2010
Thanks!
Hippster said on July 21, 2010
Very helpful, just what i needed!!! :)
xiangxiang said on August 2, 2010
WMV iPad変換
Vpulsive said on September 16, 2010
Thanks so much!!!
Marco said on September 22, 2011
Unfortunately this solution is now deprecated.
Use:
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
or whatever other indicator
in
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath