There’s a lot of repetition in the iOS Human Interface Guidelines and it isn’t particularly pleasant to read. I’ve set out to remove the noise and assemble the information of value into this multipart series. This in no way supersedes Apple’s guidelines, think of it as an accompaniment.
Multitasking
Apple warns that since the advent of multitasking we need to be prepared for the likelihood of another app interrupting ours. I’d be more concerned with the user interrupting my app, but either way they suggest saving the state of your app often. They don’t suggest how often. Let’s assume as often as possible without being a strain on the app or the device (in other words it’s your developer’s job to work that one out).
The double-high status bar – nothing to do with athletics
Make sure your UI can handle the double-high status bar, which appears during in-progress phone calls, audio recording, and tethering. In unprepared apps the extra height can cause layout problems if it pushes the UI out of the viewport. You can trigger the double-high status bar during testing, see Manipulating the Hardware in iOS Development Guide.

Finish what you started
People expect a task to be finished even if they switch away from your app mid-process. Finish user-initiated tasks in the background.
Printing
In iOS 4.2 and later users can wirelessly print content from your app. There’s built-in support for printing images and PDF content. You can use printing-specific programming interfaces to do custom formatting and rendering. iOS handles printer discovery and spooling.

Users can check on the print job in the Print Centre application, a background app that is available only while a print job is in progress.
If you’re providing the ability to print in your app:
- Use the system-provided Action button.
- If you’re providing the option to print something from within the Action menu, make sure it’s clear what will be printed.
- If appropriate, provide print options such as page range or multiple copies.
- Don’t provide print-specific UI until you’ve checked that the user’s device supports printing.

iAd Rich Media ads
If you’d prefer advertisers to pay for your app rather than users, iAds may be for you. I find them intrusive. The free version of Twitterrific has its own way of displaying ads, though without the benefit of Apple organising ad bookings and your revenue. Users don’t necessarily have to interact with an iAd for you to get paid. When people tap the ad, called a banner view, the ad can play a movie, display interactive content, or launch Safari to open a webpage. It can display content that covers your UI or cause your app to transition to the background.
Banner view dimensions
| Device | Portrait | Landscape |
|---|---|---|
| iPad | 768 x 66 points | 1024 x 66 points |
| iPhone | 320 x 50 points | 480 x 32 points |
Placement
If there’s no toolbar at the bottom of the screen, put the banner view there. If there is, place the banner directly above the toolbar.
Banner views can respond to orientation changes. See the iAd Programming Guide.
You can provide controls to allow users to cancel out of an ad once it’s been initiated, although the Guidelines warn this may adversely impact the kinds of ads your app can receive and the revenue you can collect.
Quick Look Document Preview
Mac users are already familiar with Quick Look, and it’s been available in iOS since version 4. As an example, if you receive a Word doc attached to an email, you can tap its icon and preview its contents.
On iPad, display a document preview modally. On iPhone, display a document preview in a dedicated view, preferably a navigation view. Using a navigation view allows Quick Look to place controls in the nav bar. If your view already contains a toolbar, Quick Look places the controls there instead.
Sounds
Just like using the iPod app, when users disconnect their headphones while using your app, they expect the music/sound to stop.
This section goes into considerable technical detail. If you want to read about Audio Session Categories and their behaviors, and managing audio interruptions, among other things refer to the Guidelines Sound section.
Handle Remote Control Events
In iOS 4.0, apps can receive remote control events when people use iOS media controls or accessory controls (such as headset controls). Refer to the section on sound in the Guidelines for full details.
VoiceOver and Accessibility
VoiceOver is designed to increase accessibility for blind and low-vision users, and for users with certain learning challenges (their words). This is only covered briefly in the Guidelines, to read more go here.
Edit Menu

The Edit Menu can be tweaked:
- Specify which of the standard menu commands to use.
- Determine the position of the menu (above or below).
- Define what option’s selected by default when users double-tap to reveal the menu.
Although touch and hold is the primary way users reveal the edit menu, they can also double-tap a word in a text view.
You cannot change the colour or shape of the menu. For information on how to modify the Edit Menu, refer to the iOS Application Programming Guide.
Undo and Redo
Users can initiate an Undo operation by shaking the device. You can also support Undo in your application by specifying the actions users can undo or redo, the circumstances that your app should interpret a shake event as the shake to undo gesture, and how many levels of undo to support.
Use the Undo and Redo buttons in addition to shake only if they’re fundamental to your task.
For further info see Undo and Redo Guidelines and Undo Architecture.
Keyboards and Input Views
A custom input view can replace the system-provided onscreen keyboard in apps running in iOS 3.2 and later. Numbers on iPad provides an input view that makes entering dates and times easy.

You can also provide a custom input accessory view, a separate view that appears above the keyboard. In Numbers an input accessory view allows users to perform standard or custom calculations on spreadsheet values.
![]()
In iOS 4.2 and later you can use the standard keyboard click sound. See UIDevice Class Reference.
Location Services
Location Sercices allow apps to determine people’s approximate location geographically, the direction they’re pointing their device, and the direction in which they’re moving. See Location Awareness Programming Guide.

Users can turn off Location Services in Settings. If your app requires Location Services when it’s turned off, an alert appears and they must exit your app, go into Settings and change it manually. This ensures users are fully aware that they’re granting systemwide permission to use their location information.
Local and Push Notifications
Local notifications are scheduled and delivered by an app locally. Push notifications are sent by an app’s remote server to the Apple Push Notification service, which pushes the notifcation to all devices that have the app installed.

When to use them
Suggestions for using local or push notifications include:
- A message has arrived.
- An event is about to occur.
- New data is available for download.
- The status of something has changed.
How to use them
A notification can get the user’s attention by:
- Updating a badge – the small red oval we see on our Mail icon.
- Displaying an alert.
- You can optionally play a sound.
Push notifications can be turned off, Local can’t
In Settings, people can allow or disallow badging, sounds, and alerts for push notifications from selected apps or from all apps. This doesn’t apply to local notifications, the Guidelines state that this is something people should be able to specify within each app.
Etiquette
Using a badge is the subtle way to use notifications. Use an alert when you need to deliver important information and want users to know or act right away. Alerts interrupt the user’s workflow, use them sparingly.
Messages within an alert should:
- Focus on the information, not user actions.
- Be short enough to display on one or two lines.
- Title Capitalisation if you include a title.
- Use sentence capitalisation for the message.
An alert can contain one or two buttons. In this case, the Close button is on the left and the action button (View by default) is on the right. If you specify one button, the alert displays an OK button.
Tapping the action button dismisses the alert and launches your app simultaneously.
Notification launch image
You can provide a unique launch image when people start your app in response to a notification. If you don’t supply a launch image, iOS displays either the previous snapshot or one of your other launch images. See Launch Images.
Custom notification sound
You can create a custom sound for your notification. For technical requirements, see Preparing Custom Alert Sounds in the Local and Push Notification Programming Guide.
And that’s the end of Part 5. Next is UI Element Usage Guidelines.