Programming iOS 7, Table of Contents

Preface

I. Views

1. Views

The Window

Subview and Superview

Visibility and Opacity

Frame

Bounds and Center

Transform

Layout

Autoresizing

Autolayout

Constraints in the Nib

Order of Layout Events

Autolayout and View Transforms

2. Drawing

UIImage and UIImageView

Resizable Images

Image Rendering Mode

Graphics Contexts

UIImage Drawing

CGImage Drawing

Snapshots

CIFilter and CIImage

Drawing a UIView

Graphics Context Settings

Paths and Shapes

Clipping

Gradients

Colors and Patterns

Graphics Context Transforms

Shadows

Erasing

Points and Pixels

Content Mode

3. Layers

View and Layer

Layers and Sublayers

Manipulating the Layer Hierarchy

Positioning a Sublayer

CAScrollLayer

Layout of Sublayers

Drawing in a Layer

Content Resizing and Positioning

Layers that Draw Themselves

Transforms

Depth

Shadows, Borders, and Masks

Layer Efficiency

Layers and Key–Value Coding

4. Animation

Drawing, Animation, and Threading

UIImageView and UIImage Animation

View Animation

Block-Based View Animation

View Animation Options

Springing View Animation

Keyframe View Animation

Transitions

Implicit Layer Animation

Animation Transactions

Media Timing Functions

Core Animation

CABasicAnimation and Its Inheritance

Using a CABasicAnimation

Keyframe Animation

Making a Property Animatable

Grouped Animations

Transitions

Animations List

Actions

What an Action Is

Action Search

Hooking Into the Action Search

Nonproperty Actions

Emitter Layers

CIFilter Transitions

UIKit Dynamics

Motion Effects

Animation and Autolayout

5. Touches

Touch Events and Views

Receiving Touches

Restricting Touches

Interpreting Touches

Gesture Recognizers

Gesture Recognizer Classes

Gesture Recognizer Conflicts

Subclassing Gesture Recognizers

Gesture Recognizer Delegate

Gesture Recognizers in the Nib

Touch Delivery

Hit-Testing

Initial Touch Event Delivery

Gesture Recognizer and View

Touch Exclusion Logic

Gesture Recognition Logic

Touches and the Responder Chain

II. Interface

6. View Controllers

View Controller Responsibilities

View Controller Hierarchy

View Controller Creation

How a View Controller Gets Its View

Manual View

Generic Automatic View

View in a Separate Nib

Nib-Instantiated View Controller

Storyboard-Instantiated View Controller

View Resizing and the Status Bar

Rotation

Rotation and Layout Events

Initial Orientation

Presented View Controller

Presenting a View

Communication With a Presented View Controller

Presented View Animation

Presentation Styles

Rotation of a Presented View

Presenting a View in Response to Rotation

Tab Bar Controllers

Tab Bar Items

Configuring a Tab Bar Controller

Navigation Controllers

Bar Button Items

Navigation Items and Toolbar Items

Configuring a Navigation Controller

Custom Transition Animations

Noninteractive Custom Transition Animation

Interactive Custom Transition Animation

Custom Presented View Controller Transition

Transition Coordinator

Page View Controller

Container View Controllers

Storyboards

Segues

Container Views

Unwind Segues

View Controller Lifetime Events

Appear and Disappear Events

Manual Event Forwarding to a Child View Controller

View Controller Memory Management

State Restoration

How to Test State Restoration

Participating in State Restoration

Restoration ID, Identifier Path, and Restoration Class

Restoring View Controller State

Restoration Order of Operations

Restoration of Other Objects

Snapshot Suppression

7. Scroll Views

Creating a Scroll View in Code

Using a Content View

Scroll View in a Nib

Scrolling

Paging

Tiling

Zooming

Zooming Programmatically

Zooming with Detail

Scroll View Delegate

Scroll View Touches

Floating Scroll View Subviews

Scroll View Performance

8. Table Views and Collection Views

Table View Cells

Built-In Cell Styles

Registering a Cell Class

Custom Cells

Table View Data

The Three Big Questions

Reusing Cells

Table View Sections

Section Index

Refreshing Table View Data

Variable Row Heights

Table View Cell Selection

Managing Cell Selection

Responding to Cell Selection

Navigation From a Table View

Cell Choice and Static Tables

Table View Scrolling and Layout

Table View State Restoration

Table View Searching

Table View Editing

Deleting Table Items

Editable Content in Table Items

Inserting Table Items

Rearranging Table Items

Dynamic Table Items

Table View Menus

Collection Views

Collection View Classes

Using a Collection View

Custom Collection View Layouts

Switching Layouts

Collection Views and UIKit Dynamics

9. Popovers and Split Views

Preparing a Popover

Popover Size

Popover Appearance Customization

Summoning and Dismissing a Popover

Popover Segues

Managing a Popover Controller

Dismissing a Popover

Popovers During Rotation or Backgrounding

Popovers and Presented Views

Automatic Popovers

Split Views

Using a Split View

Split Views in a Storyboard

Other Split View Configurations

10. Text

Fonts

Fonts and Dynamic Type

Font Descriptors

Attributed Strings

Attributed String Attributes

Making an Attributed String

Modifying and Querying an Attributed String

Measuring and Drawing an Attributed String

Labels

Number of Lines

Wrapping and Truncation

Label Resizing

Customized Label Drawing

Text Fields

Summoning and Dismissing the Keyboard

Keyboard Covers Text Field

Configuring the Keyboard

Text Field Delegate and Control Event Messages

Text Field Menu

Text Views

Text View as Scroll View

Text View and Keyboard

Text Kit

Text Container

Alternative Text Kit Stack Architectures

Layout Manager

Text Kit Without a Text View

11. Web Views

Web View Content

Loading Web View Content

Designing Web View Content

Paginated Web Views

Web View State Restoration

Communicating with a Web View

12. Controls and Other Views

UIActivityIndicatorView

UIProgressView

UIPickerView

UISearchBar

UIControl

UISwitch

UIStepper

UIPageControl

UIDatePicker

UISlider

UISegmentedControl

UIButton

Custom Controls

Bars

Bar Position and Bar Metrics

Bar Appearance

UIBarButtonItem

UINavigationBar

UIToolbar

UITabBar

Tint Color

Appearance Proxy

13. Modal Dialogs

Alert View

Action Sheet

Dialog Alternatives

Local Notifications

Activity View

III. Some Frameworks

14. Audio

System Sounds

Audio Session

Interruptions

Routing Changes

Audio Player

Remote Control of Your Sound

Playing Sound in the Background

Further Topics in Sound

15. Video

MPMoviePlayerController

MPMoviePlayerViewController

UIVideoEditorController

Introduction to AV Foundation

Some AV Foundation Building Blocks

Displaying a Movie

Synchronizing Video With Animation

Building Media

Further Exploration of AV Foundation

16. Music Library

Exploring the Music Library

Querying the Music Library

Persistence and Change in the Music Library

Music Player

MPVolumeView

Playing Songs With AV Foundation

Music Picker

17. Photo Library and Image Capture

Choosing From the Photo Library

Assets Library Framework

Using the Camera

Customizing the Image Capture Interface

Image Capture With AV Foundation

18. Address Book

Address Book Database

Address Book Interface

ABPeoplePickerNavigationController

ABPersonViewController

ABNewPersonViewController

ABUnknownPersonViewController

19. Calendar

Calendar Database

Creating Calendars and Events

Recurrence

Fetching Events

Reminders

Proximity Alarms

Calendar Interface

EKEventViewController

EKEventEditViewController

EKCalendarChooser

20. Mail and Messages

Mail Message

Text Message

Twitter Post

21. Maps

Displaying a Map

Annotations

Custom Annotation View

Custom Annotation Class

Other Annotation Features

Overlays

Custom Overlay Class

Custom Overlay Renderer

Other Overlay Features

Map Kit and Current Location

Communicating With the Maps App

Geocoding, Searching, and Directions

Geocoding

Searching

Directions

22. Sensors

Core Location

Basic Location Determination

Heading

Background Location

Acceleration and Attitude

Shake Events

Raw Acceleration

Gyroscope

IV. Final Topics

23. Persistent Storage

The Sandbox

Basic File Operations

Saving and Reading Files

User Defaults

File Sharing

Document Types

Handing Off a Document

Document Architecture

iCloud

XML

SQLite

Core Data

Image File Formats

24. Basic Networking

HTTP Requests

Simple HTTP Request

Formal HTTP Request

Multiple Tasks

Background Downloads

Background App Refresh

In-App Purchases

Bonjour

25. Threads

Main Thread

Why Threading Is Hard

Three Ways of Threading

Manual Threads

NSOperation

Grand Central Dispatch

Threads and App Backgrounding

26. Undo

Undo Manager

Target–Action Undo

Undo Grouping

Invocation Undo

Undo Interface

Shake-To-Edit

Undo Menu

Appendix A. Application Lifetime Events


Back to Matt Neuburg’s Home Page

This page prepared December 6, 2013 by Matt Neuburg, phd = matt at tidbits dot com, using RubyFrontier. RubyFrontier is a port, written in the Ruby language, of the Web-site-creation features of UserLand Frontier. Works just like Frontier, but written in Ruby!
Download RubyFrontier from GitHub.