You can also create a custom button appearance without subclassing. Just create the on and off images, then create your button in Interface Builder as a Square Button. Add the images to your project, and set them as the Image and Alt. Image on the button. Set the Border to off, and change the Type to Momentary Change.
Reasons to subclass would be: nice appearance no matter the size of the button (can also be done with vector graphics too, e.g. PDF), mouse-over effects, and custom text styling.
Which of the iPhone buttons are you trying to reproduce? Can you provide a screenshot?