For iPhone developers (ignoring iPad for now) with an emphasis on getting the fastest app store approval. Everything that was a suggestion becomes an imperative where it makes sense. If you're thinking of violating these rules, you can check for yourself what the caveats are. Generally speaking, deviating from these imperatives will more likely cause your app to be hung up in approval.
You can read this entire document in about 20 minutes. This is faster than reading and understanding the entire Human Interface Guidelines.
- iPhone apps home / start screen shall be portrait mode (11)
- Don't use standard gestures to do non-standard things (11, 60)
- Easy way to test app termination and restart by bringing up the suspended app dialog and killing it (13)
- Don't copy the look and feel of system components into a custom component (17)
- Feedback: An item in a List component shall only briefly highlight when touched (18, 125)
- Feedback: Adding items to a list shall be programmed to animate into place (18)
- Feedback: Sound can help to signal an event to the user, but you can't rely on it 100% (18)
- Any navigation (screen-flow / workflow) implies you are writing a navigation-based application (22, 44)
- Scrolling: put the most important data in the top half of the screen and allow people to scroll down if necessary (24)
- Don't reduce font size to fit the layout / screen (24)
- Don't needlessly customize the look of familiar components (26)
- Prototype an app by making a storyboard file and filling it with placeholder content and showing it to your users on an actual phone (27)
- Think top down on any screen design: the most important and highest level near the top, the less important low level near the bottom (44, 22)
- Make one and only one path to a screen (45)
- The main function of your app shall be immediately clear (45)
- Be consistent with how UI components are used in built-in apps (46)
- Avoid date-speak. Saying "today" or "tomorrow" based on a timestamp is hard to get right based on locale, so try to use real dates (47, 102-3)
- Shortcut user input. Use appropriate widgets to get data more quickly. Don't make the user enter data they already store and you can query (47)
- Write your app like the filesystem doesn't exist to the user (48, 73)
- Avoid settings or preferences for your application (50, 63)
- Avoid all branding in the app. If you have branding make it subtle and unobtrusive (50)
- Search: eagerly index your data for searching (51)
- Search: filter in real time, preferably while the user is typing. This includes remote data when possible. (51, 74)
- Search: Don't use a tab for searching, integrate it wherever it's needed (51)
- Search: Display placeholder content right away as you load real data (51)
- Search: Use a scope bar if the data returned can be easily categorized. See Scope Bar: Page 148. (51)
- Don't write in all caps (52)
- Don't misspell words (52)
- Describe bug fixes to new versions in detail (52)
- Don't be loquacious: keep your wording short (52)
- Don't customize widgets unless you're making an immersive game (52)
- Don't use standard components to do non-standard things (53)
- Consider adding realism. A spirit-level app shall visually simulate the behavior of a real spirit level (54)
- Don't hardcode screen-sizes (56)
- Don't constrain device orientation (57)
- Maintain focus when device changes orientation (57)
- Don't tell the user to change the device's orientation (57)
- If your app must run in a specific orientation, launch in that orientation (57)
- If you have a complex page that doesn't animate orientation change well, use a cross-fade transition (57)
- Check accelerometer if it matters on orientation changes (57)
- Don't scale up your content to fudge device orientation changes (58)
- Taps need a target area of 44x44 pixels, so don't make components smaller than that (59, 111)
- Don't define new gestures (61)
- Don't use animations in non-immersive games (60)
- Use an edit mode in a table to reveal a delete component (60)
- Don't prompt the user to save their work (61)
- Don't use modals (62, 138)
- If you must use modals, make them occasional and simple (62)
- Make the launch image a copy of your home screen or something that looks closely like it (63, 168)
- Don't ask users to supply setup information (63, 50, 47)
- Lazily request input for settings / preferences information as needed (63)
- Eschew requiring login information until the moment you need it (63)
- Restore the app state of when the app was last used when the user starts the application (64)
- Save user data as soon as possible and as often as needed (64)
- Never quit an iOS application.(64)
- Don't have users agree to an EULA (65)
- Don't add features that aren't focused on the main task (65)
- Use a segmented control in a toolbar to display different facets of the same data (68)
- Use a tab bar at the bottom of a screen (UIView) to switch between different information categories (68)
- iCloud: Respect the user's storage quotas and keep stored data to a minimum (the user pays for storage) (72)
- iCloud: You can store Documents and small amounts of key/value data (72)
- iCloud: Bookmarking the last thing done in an app is a good thing to store in iCloud (72)
- iCloud: Preference storage should be stuff applicable to all iOS devices for this app / service (73)
- iCloud: App should work reasonably when iCloud is not available (73)
- iCloud: Let users turn on and off iCloud storage (73)
- iCloud: Don't make users choose which pieces of data or content get put into iCloud on an a-la-cart basis (73)
- iCloud: Don't give users an option of storing a document on the device (no local documents) (73)
- iCloud: Try to update content automatically unless the documents are large (73)
- iCloud: Large documents should have user control and should indicate with a spinner or progress bar when they're being updated (73)
- iCloud: Warn users of deleting iCloud data (that it won't be available on other devices either) (73)
- iCloud: Tell the user when a conflict is detected in shared iCloud data as soon as possible (74)
- iCloud: Include iCloud content in searches (74)
- Multitasking: Handle interruptions or audio from other applications gracefully and quickly (75)
- Multitasking: Transition from foreground to background gracefully and quickly (75)
- Multitasking: Behave responsibly when not in the foreground (75)
- Multitasking: Beware the double-high status bar. This will often cover the top bit of your app if you're not prepared for it. You can simulate the double-high status bar using the simulator. This technique is described in Tools Workflow Guid for iOS. (75)
- Multitasking: Pause activities that require attention and participation (76)
- Multitasking: Make sure your audio handles interruptions from other audio tasks and resumes appropriately (76, 89)
- Multitasking: Avoid notifications. If you notify, do it sparingly (76)
- Multitasking: When appropriate, finish user initiated tasks in the background (76)
- Notifications: Use Notification Center to create local and push notifications (78)
- Notifications: A banner is a small translucent view that appears onscreen and then disappears after a few seconds (78)
- Notifications: An alert is a standard alert view that appears onscreen and requires user interaction to dismiss (78)
- Notifications: A badge is a small red oval that displays the number of pending notification items (79)
- Notifications: A push notification can only push one of the notification types it's registered for (79)
- Notifications: A banner can only display a small number of characters. Try not to truncate banner text (80)
- Notifications: Use title style capitalization in alerts and make them short enough so they don't truncate (80)
- Notifications: Provide a sound that users can choose to hear when notification arrives (80)
- Notifications: You may provide a different launch image if your app was launched from an alert (80)
- Printing: More information on printing from your app can be found in Drawing and Printing Guide for iOS (81)
- Printing: Use the system-provided Action button in your toolbar or navigation bar for printing (81)
- Printing: Display the Print Action Button when printing is the primary function in the current context (81)
- Printing: You may want to allow users to select page ranges and multiple copies where appropriate (82)
- Printing: Don't display Print Action buttons if the device can't print (82)
- iAds: iPhone standard ad banners shall be 320 x 50 points (a point is 2 pixels on a retina display) (83)
- iAds: iPhone full screen ad banners changes depending on orientation (83)
- iAds: Place a standard banner view at or near the bottom of the page (83)
- iAds: Don't allow standard banners to scroll off the screen (88)
- iAds: Pause activities when users interact with ads (88)
- iAds: Don't stop an ad from playing (88)
- Document Previews: You can code for a quick preview of your document for the user even if the user can't really load the document. Supporting Quick Views of a document is covered in Document Interaction Programming Topics for iOS (88)
- Document Previews: Display a document preview in a Navigation view on the iPhone (89)
- Sound: The system volume controls all sound volume, not your app (91)
- Sound: Users expect to be able to select the audio route of sound coming from your app. Make sure you allow for this by using the MPVolumeView in your app (91)
- Sound: If you need to display a volume slider, be sure to use the system-provided volume silver available when you use the MPVolumeView class (91)
- Sound: If you only need to render sound effects that are incidental to the functionality of your app, use System Sound Services (91)
- Sound: If sound plays an important role in your application, use Audio Session Services (91)
- Sound: Audio Session Services: Select a category based on it's meaning, not its set of behaviors (92)
- Sound: Audio Session Services: Avoid adding a property to the audio session to modify a category's standard behavior (92)
- Sound: Audio Session Services: Take into account what the device is doing when choosing the audio category (92)
- Sound: Audio Session Services: Don't change session categories while the app is running (92)
- Sound: Audio Session Services: HIG goes through specific choices of category based on use case (93)
- Sound: Audio Session Services: Identify the type of audio interruption your app can cause (95)
- Sound: Audio Session Services: Respond appropriately when your app gets control back after an audio interruptions occurs (95)
- Sound: Audio Session Services: If your audio interruption is determined to be a resumable interruption, deactivate your audio session with a AVAudioSessionSetActiveFlags_NotifyOthersOnDeactivation (96)
- Sound: Audio Session Services: If your app is a non-resumable audio interruption, deactivate your audio session without any flags (96)
- Sound: Audio Session Services: Determine if your need to resume when an audio interruption ends (97)
- Remote Control: Limit your app's eligibility to receive remote control events where appropriate (97)
- Remote Control: Use system-provided controls to offer AirPlay support (97)
- Remote Control: Don't repurpose remote control events (98)
- VoiceOver: Custom UI components require additional work to make VoiceOver accessible for blind or low-vision users. Standard ones do not and just work out of the box (98)
- Edit, Copy and Paste: Check out "Copy and Paste Operations" in iOS App Programming Guide (99)
- Edit, Copy and Paste: Don't display cut or copy if nothing is selected (99)
- Edit, Copy and Paste: You should control how the edit menu appears so that important parts of the UI are not obscured by it (99)
- Edit, Copy and Paste: Support touch and hold plus double tap to invoke the edit menu (100)
- Edit, Copy and Paste: Don't make a button in your app that does what the edit menu does (100)
- Edit, Copy and Paste: Consider enabling the selection of static text if it might be useful to the user (100)
- Edit, Copy and Paste: Don't make button titles selectable (100)
- Edit, Copy and Paste: Combine support for undo / redo with copy and paste (100)
- Edit, Copy and Paste: When you need to enable actions the utilize selected text or object in a way that's external to the current context, use an Action Sheet as described on page 135 (100)
- Edit, Copy and Paste: Custom Edit Menu Items: Make edit items that edit, alter or otherwise act directly on the user's selection (101)
- Edit, Copy and Paste: Custom Edit Menu Items: List custom items after all system-provided items (101)
- Edit, Copy and Paste: Custom Edit Menu Items: Limit the number of Custom Edit Menu Items (101)
- Edit, Copy and Paste: Custom Edit Menu Items: Make them succinct and verbs. Initial-capitalize words if you have to use more than one (101)
- Undo and Redo: Undos, Re-dos and Cancel Undos are initiated by shaking the phone (101)
- Undo and Redo: Supporting undos et al are covered in "Undo Architecture" (101)
- Undo and Redo: Supply brief descriptive phrases to tell the user what it is they're about to un/redo (101)
- Undo and Redo: Avoid text that's too long (102)
- Undo and Redo: Don't overload the shake gesture (102)
- Undo and Redo: Use the system-proved Undo and Redo buttons if undo and redo buttons are fundamental tasks in your app (102)
- Undo and Redo: Relate undo and redo capability with the user's immediate context, not some other context (102)
- Keyboards and Input Views: If you create custom input views (i.e. special keyboards) for specialty input to make it easier for your users (102)
- Keyboards and Input Views: You can also add keyboard accessories views which go along the top of your keyboard (103)
- Location Services: Make sure users understand why they're being asked to turn Location Services on (104)
- Location Services: Check the user's Location Services preference to avoid triggering the alert unnecessarily (104)
- Location Services: Display the Location Services when your app starts only if your app cannot perform its primary function without knowing the user's location (104)
- Location Services: Don't make programmatic calls that could trigger the the alert before the user actually selects the feature that needs the location.
- iOS UI Elements: Changing the status bar style should only be done via the Info.plist setting (105)
- iOS UI Elements: Don't hide the status bar unless you're writing a full-screen immersive game or watching a movie (106)
- iOS UI Elements: Don't create a custom status bar (106)
- iOS UI Elements: Display network activity where appropriate (106, 144)
- iOS UI Elements: Specify the color of the status bar on the iPhone (107)
- iOS UI Elements: Set whether a change in the color of the status bar should be animated (107)
- iOS UI Elements: Defining a navigation bar is covered in "Navigation Controllers" and UINavigationBar Class Reference (107)
- iOS UI Elements: The title of the current view shall be the title of the navigation bar (108)
- iOS UI Elements: Use the system font in the navigation bar title (108)
- iOS UI Elements: Use a toolbar instead of a navigation bar if you need a larger set of controls or you don't need navigation (108)
- iOS UI Elements: Consider using a segmented control in a navigation bar at the top level of the application (108)
- iOS UI Elements: Avoid additional controls in the navigation bar. You should have either a back button with a title and one other control for the view's contents or a segmented control without a title with a back button and nothing else (108)
- iOS UI Elements: Use system-provided buttons according to their standard meaning (108)
- iOS UI Elements: You may customize the appearance of the navigation bar (108)
- iOS UI Elements: Make sure that a customizable back button still looks like a back button (109)
- iOS UI Elements: Don't make a multi-segmented back button (109)
- iOS UI Elements: Take into account the automatic change in navigation bar heigh that occurs when the device is rotated. Look at how UIBarMetrics is used. (109)
- iOS UI Elements: A toolbar contains controls that perform actions related to object in the screen or view (110)
- iOS UI Elements: Use a toolbar to give people a selection of frequently used commands that make sense in the current context (110, 150)
- iOS UI Elements: You may customize the appearance of a toolbar (110)
- iOS UI Elements: Use system-provided toolbar items according to their standard meaning (111)
- iOS UI Elements: You may customize the appearance of toolbar items (111)
- iOS UI Elements: Don't mix styles if toolbar items (111)
- iOS UI Elements: Take into account the automatic change in toolbar height that occurs when the device is rotated. Look at how UIBarMetrics is used. (111)
- iOS UI Elements: A tab bar gives people the ability to switch between different subtasks, views or modes (111)
- iOS UI Elements: A tab bar is not to give users controls that act on elements in the current mode or screen (112)
- iOS UI Elements: Use a tab bar to organize information at the application level (112)
- iOS UI Elements: Don't remove tab elements when that function is not available, disable instead (112)
- iOS UI Elements: Badge a tab bar icon to signal new information is associated with that mode (113)
- iOS UI Elements: Use system-provided tab bar items according to their standard meaning (113)
- iOS UI Elements: You may customize the appearance of tab bar items (113)
- iOS UI Elements: If you have a custom tint for a tab bar, define a selection indicator image that's translucent (113)
- iOS UI Elements: Table View: Check out Table View Programming Guide for iOS and UITableView Class Reference (119)
- iOS UI Elements: Table View: Plain tables can have rows that can be separated into labeled sections and an optional index can appear vertically along the right edge (120)
- iOS UI Elements: Table View: Grouped tables can have one or more have grouped items preceded by header and footer text and does not include an index (121)
- iOS UI Elements: Table View: Elements: Checkmark elements indicates a row selection (121)
- iOS UI Elements: Table View: Elements: Disclosure Indicator displays another table associated with this row (121)
- iOS UI Elements: Table View: Elements: Detail disclosure button displays additional details about the row in a new view (121, 143)
- iOS UI Elements: Table View: Elements: Row reorder indicates that a row can be dragged to another location in the table (121)
- iOS UI Elements: Table View: Elements: Row Insert Add a new row to the table (122)
- iOS UI Elements: Table View: Elements: Delete button control reveals and hides the delete button from a row when editing (122)
- iOS UI Elements: Table View: Elements: Delete button Deletes the row (122)
- iOS UI Elements: Table View: Elements: Default cell style UITableViewCellStyleDefault includes an optional image in the left and a left-aligned title in black (122)
- iOS UI Elements: Table View: Elements: Subtitle cell style UITableViewCellStyleSubtitle is the same as default with a subtitle beneath the title (123)
- iOS UI Elements: Table View: Elements: Value 1 style UITableViewCellStyleValue1 has a left aligned title with a right aligned title in blue. Don't use images with this (123)
- iOS UI Elements: Table View: Elements: Value 2 style UITableViewCellStyleValue2 has a right aligned title in a small, blue font followed on the same line by a left aligned subtitle in a larger black font (124)
- iOS UI Elements: Table View: Elements: Provide a list of options from which users can select (124)
- iOS UI Elements: Table View: Elements: Display hierarchical information. (124)
- iOS UI Elements: Table View: Elements: Display conceptually grouped information (125)
- iOS UI Elements: Table View: Elements: Use an index to facilitate lookup, but be aware that disclosure indicators interfere with indexes (125)
- iOS UI Elements: Table View: Elements: Provide feedback when users select an item. Highlight briefly on tap / touch (125)
- iOS UI Elements: Table View: Elements: Animate user changes to list items (125)
- iOS UI Elements: Table View: Elements: When table elements are complex, don't wait until all the data is available before displaying anything (125)
- iOS UI Elements: Table View: Elements: Display stale data while waiting for new data to arrive (125)
- iOS UI Elements: Table View: Elements: If loading is slow, provide users with a signal that processing is continuing (125)
- iOS UI Elements: Table View: Elements: Don't have variable row heights in a plain table (126)
- iOS UI Elements: Table View: Elements: Don't use white in areas of an image that you want to look transparent (126)
- iOS UI Elements: Table View: Elements: If it helps users understand your app better, use a custom title for the delete button (126)
- iOS UI Elements: Table View: Elements: Use the grouped tables for UITableViewCellStyleValue1 and UITableViewCellStyleValue2 cell styles (126)
- iOS UI Elements: Table View: Elements: Don't truncate text labels (127)
- iOS UI Elements: Table View: Elements: If think you need to lay out your cells in a non-standard way, create your own table style. Check out Table View Programming Guide for iOS (128)
- iOS UI Elements: Text View: Display multiple lines of text and can be editable. You have control over the font metrics of the view but only on the entirety of the text, not parts (129)
- iOS UI Elements: Web View: Used to display rich HTML content. Check UIWebView Class Reference (129)
- iOS UI Elements: Web View: Don't use a web view to create an application that looks and behaves like a mini web browser (130)
- iOS UI Elements: Container View Controller: This is for custom sets of child views that are navigated in a custom way. Check out UIViewController Class Reference (130)
- iOS UI Elements: Container View Controller: Avoid implementing Custom View Controllers (130)
- iOS UI Elements: Container View Controller: Make sure it works in all orientations (130)
- iOS UI Elements: Container View Controller: Avoid flashy view transitions (131)
- iOS UI Elements: Alerts: Avoid creating unnecessary alerts. Guidelines are on page: (132)
- iOS UI Elements: Alerts: Titles shall be one-liners (132)
- iOS UI Elements: Alerts: Descriptions shall describe the situation and what users can do about it (132)
- iOS UI Elements: Alerts: Don't use single-word titles (133)
- iOS UI Elements: Alerts: Sentence fragments are often easier to understand than complete sentences in titles (133)
- iOS UI Elements: Alerts: Don't hesitate to be negative (really, Apple? I had no idea you were like that) (133)
- iOS UI Elements: Alerts: Don't use pronouns in your text or refer to people directly (133)
- iOS UI Elements: Alerts: Use punctuation correctly (133)
- iOS UI Elements: Alerts: Use a complete sentence in the alert text (133)
- iOS UI Elements: Alerts: Don't make alert texts long enough cause the alert to scroll (133)
- iOS UI Elements: Alerts: Don't indicate which buttons to tap by saying "tap x to do y", for instance (134)
- iOS UI Elements: Alerts: Test your alerts in all orientations (134)
- iOS UI Elements: Alerts: Use two buttons in your alert (134)
- iOS UI Elements: Alerts: In a two-button that proposes a risky action, the button that cancels the action shall be on the right and light-colored (134)
- iOS UI Elements: Alerts: In an alert button that proposes a benign action, reverse this (left and light colored) (134).
- iOS UI Elements: Alerts: Pressing the home button on an alert should auto-execute the "cancel" action button and move the app into the background (134)
- iOS UI Elements: Alerts: Use short one or two word titles on buttons that are initial capitalized. Don't use humor or pronouns. (135)
- iOS UI Elements: Action Sheets: For displaying a set of choices related to a task initiated by a user. To use an action sheet, check out UIActionSheet Class Reference (135)
- iOS UI Elements: Action Sheets: Always contain at least 2 buttons (136)
- iOS UI Elements: Action Sheets: Coordinate its appearance with navigation bars and toolbars (137)
- iOS UI Elements: Action Sheets: Always include a cancel button (137)
- iOS UI Elements: Action Sheets: Use a red button color to provide for a potentially destructive action (137)
- iOS UI Elements: Action Sheets: Don't make users scroll through an action sheet (138)
- iOS UI Elements: Modal Views: Make more sense on an iPad than an iPhone (138)
- iOS UI Elements: Modal Views: Coordinate the look of the view with the appearance of your app (139)
- iOS UI Elements: Modal Views: Display a title that identifies the task in question (140)
- iOS UI Elements: Modal Views: Choose the appropriate transition style: Vertical, Flip and Partial Curl. Each have their reasons to choose (140)
- iOS UI Controls: Activity Indicator: Shows a that a task is progressing and has a spinner and an optional label. Information on implementing this can be found in UIActivityIndicatorView Class Reference (141)
- iOS UI Controls: Activity Indicator: Don't display a stationary activity indicator (141)
- iOS UI Controls: Activity Indicator: Use one to assure the user that a process has not stalled (141)
- iOS UI Controls: Activity Indicator: Coordinate the size and color of it to match any customizations you may have of the background view (141)
- iOS UI Controls: Date and Time Picker: Working with this is documented in the UIDatePicker Class Reference (142)
- iOS UI Controls: Date and Time Picker: Has 4 modes. Date and time, Time, Date and Countdown Timer (142)
- iOS UI Controls: Date and Time Picker: You may want to coarsen the minutes part of the picker to, say, quarter or half hour intervals if it makes sense (143)
- iOS UI Controls: Detail Disclosure Button: Check out UITableViewCellAccessoryDetailDisclosureButton information in UITableViewCell Class Reference (143)
- iOS UI Controls: Info Button: For revealing config details about an app, typically on the back of the current view. More on this is in the UIButton Class Reference (143)
- iOS UI Controls: Info Button: Use this to flip the screen and reveal more information and / or config options (144)
- iOS UI Controls: Label: Used to display Static Text, keep it simple, not fancy. Details covered in UILabel Class Reference (144)
- iOS UI Controls: Network Activity Indicator: Appears in the status bar and shows that network activity is occurring (144)
- iOS UI Controls: Network Activity Indicator: Use UIApplication networkActivityIndicatorVisible to control the indicator's visibility (145)
- iOS UI Controls: Page Indicator: Shows how many views are open and which one is currently visible (145)
- iOS UI Controls: Page Indicator: Don't use it in conjunction with hierarchical views, only sequential views (145)
- iOS UI Controls: Page Indicator: Vertically center a page indicator between the bottom edge of an open view and the bottom edge of the screen (145)
- iOS UI Controls: Picker: Displays a set of value from which the user picks one (146)
- iOS UI Controls: Picker: Consider using a table view instead if you have a large number of values to choose from (146)
- iOS UI Controls: Picker: Use the translucent selection bar to display contextual information (146)
- iOS UI Controls: Progress View: Shows progress of a task or process that has a known duration (147)
- iOS UI Controls: Progress View: Comes in two styles, default and bar (147)
- iOS UI Controls: Progress View: Default is best for main content areas (147)
- iOS UI Controls: Progress View: Bar is best suited for toolbars (147)
- iOS UI Controls: Progress View: You may customize the appearance of the progress bar (147)
- iOS UI Controls: Rounded Rectangle Button: performs an app-specific action. Check out UIButton Class Reference (147)
- iOS UI Controls: Rounded Rectangle Button: Use title-style (initial cap) capitalization for button titles. Don't make it too long that it truncates (148)
- iOS UI Controls: Scope Bar: Allows a user to define the scope of a search. Only available in conjunction with a search bar (148)
- iOS UI Controls: Scope Bar: Check out UISearchBar Class Reference and UISearchDisplayController (148, 149)
- iOS UI Controls: Search Bar: Accepts text for use in search (149)
- iOS UI Controls: Search Bar: Optional elements are: PLaceholder text, Bookmarks button, Clear button, a Prompt title and Results list icon (149)
- iOS UI Controls: Segmented Control: A linear set of segments each of which functions as a button that can display a different view (150)
- iOS UI Controls: Segmented Control: Make sure each segment is easy to tap (150)
- iOS UI Controls: Segmented Control: Maintain consistency in the size of each segment (151)
- iOS UI Controls: Segmented Control: Don't mix text and images in a segmented control (151)
- iOS UI Controls: Segmented Control: You may customize the appearance of a segmented control (151)
- iOS UI Controls: Slider: Allows for users to make adjustments in a range. Check out UISlider Class Reference (151)
- iOS UI Controls: Stepper: Allows for users to increase or decrease a value by a constant amount (152)
- iOS UI Controls: Stepper: Make it obvious which value a stepper affects (152)
- iOS UI Controls: Switch: Manipulates a mutually exclusive choice or state (used in table views only). Check out UISwitch Class Reference (153)
- iOS UI Controls: Switch: You may customize the appearance of a switch (154)
- iOS UI Controls: Text Field: Accepts a single line of user input. Check out UITextField Class Reference (153)
- iOS UI Controls: Text Field: Customize it only if it helps the user understand how they should use it (154)
- iOS UI Controls: Text Field: Display the Clear button in the right end of the text field when appropriate (154)
- iOS UI Controls: Text Field: Display a hint in the text field if it helps the users understand its purpose (154)
- iOS UI Controls: Text Field: Specify different keyboards for different types of content. Checkout "Managing the keyboard" in iOS App Programming Guide (155)
- iOS UI System-provided Elements: Consist of the following. Action, Camera, Compose, Bookmarks, Search, Add, Trash, Organize, Reply, Stop, Refresh, Play, FastForward, Pause, Rewind. Each of these is one of UIBarButtonSystemItem. Check out UIBarButtonItem Class Reference (156)
- iOS UI System-provided Elements: Consist of the following: Edit, Cancel, Save, Done, Undo, Redo for use in navigation bars and toolbars (157)
- iOS UI System-provided Elements: You may also use the page curl in a toolbar, but not in a navigation bar. Don't use the page curl button to flip the screen, use the info button instead (143, 157)
- iOS UI System-provided Elements: The following icons are OK to use in a tab bar: Bookmarks, Contacts, Downloads, Favorites, Featured, History, More, MostRecent, MostViewed, Recents, Search, TopRated. Don't use an icon for other than it's intended purpose as stated in the HIG. Check out UITabBarSystemItem in UITabBarItem Class Reference to find out how to specify them. (52, 158)
- iOS UI System-provided table row buttons: ContactAdd allows you to add a contact to a table item (159)
- iOS UI System-provided table row buttons: DetailDisclosure Display a new view that contains details about the current item. It can be used outside of tables, though (119, 159)
- iOS UI System-provided table row buttons: Info flips to the back of the view to display config options or more information (159)
- iOS UI System-provided table row buttons: Don't deviate from their pre-defined meanings / intended uses (159)
- iOS UI Custom Icon and Image Creation Guidelines: These are the specifications. If you are customizing an element (and you shouldn't be), you should read page 160 and 161 in the HIG to make sure you're doing it in an acceptable way to Apple. (160, 161)
- iOS UI Custom Icon and Image Creation Guidelines: For best results, enlist the help of a professional graphic designer (162)
- iOS UI Custom Icon and Image Creation Guidelines: Use universal imagery people will recognize. Embrace simplicity. (162)
- iOS UI Custom Icon and Image Creation Guidelines: Use color and shadow carefully (162)
- iOS UI Custom Icon and Image Creation Guidelines: Don't use "greek" text or wavy lines to indicate text (163)
- iOS UI Custom Icon and Image Creation Guidelines: Avoid using a photo instead use an idealized version of the object of the icon (163)
- iOS UI Custom Icon and Image Creation Guidelines: Don't use existing iOS images in your artwork (163)
- iOS UI Custom Icon and Image Creation Guidelines: Portray the materials of your icon's object realistically. Don't make everything look like it's made out of plastic. (163)
- iOS UI Custom Icon and Image Creation Guidelines: Use transparency where it makes sense (163)
- iOS UI Custom Icon and Image Creation Guidelines: Retina Display: Items should be the following. Richer in texture, More detailed, More realistic (164)
- iOS UI Custom Icon and Image Creation Guidelines: Retina Display: You can scale up your original artwork 200% using nearest neighbor algorithm and or add detail and depth (164)
- iOS UI Custom Icon and Image Creation Guidelines: Retina Display: Consider softening scaled up elements (165)
- iOS UI Custom Icon and Image Creation Guidelines: Retina Display: Consider adding blur for engraving or drop shadows (165)
- iOS UI Application Icons: Your app icon should have two version: one 72 x 72 and one 114 x 114 (166)
- iOS UI Application Icons: Your app icon should have the following characteristics: Has 90 degree corners. Does not have a drop shadow, Does not have a shine or gloss (unless you've set it not to render this in the Info.plist of your app). Does not have an alpha transparency (167)
- iOS UI Application Icons: Give your icon a discernible background, not a transparent one (168)
- iOS UI Application Icons: Don't play with translucency in your icon, make sure it extends to the border of the image area (167)
- iOS UI Application Icons: Create a large version of your app icon for the app store: a 512 x 512 version and a 1024 x 1024 version (168)
- iOS UI Launch Image: Your launch image should look like your first screen, not a splash screen, a branding screen or an about window. Avoid text or components that can change in this image. Include the status bar. Check out the image examples on 170 (169, 170)
- iOS UI Launch Image: Two versions: 320 x 480 and 640 x 960. (169)
- iOS UI Small Icons: Small icons are used by search and settings. The sizes are: 29 x 29 and 58 x 58 (171)
- iOS UI Document Icons: Used for custom documents if your app creates them. They're rendered from your app icon by default. Check out the examples on page 172 (171-2)
- iOS UI Document Icons: Custom. You can make your own document icons. The sizes are 22 x 29 and 44 x 58. Check out the examples on 172. (172)
- iOS UI Icons for Nav Bars, Toolbars and Tab bars: If you plan on making your own (and you shouldn't: you should be using the system-provided ones) see page 176 for this (176)