| |
| |
Preface | |
| |
| |
| |
Implementing Controllers and Views | |
| |
| |
| |
Displaying Alerts with UIAlertView | |
| |
| |
| |
Creating and Using Switches with UlSwitch | |
| |
| |
| |
Customizing the UlSwitch | |
| |
| |
| |
Picking Values with the UlPickerView | |
| |
| |
| |
Picking the Date and Time with UIDatcPicker | |
| |
| |
| |
Implementing Range Pickers with UlSlider | |
| |
| |
| |
Customizing the UlSlider | |
| |
| |
| |
Grouping Compact Options with UlSegmentedControl | |
| |
| |
| |
Presenting and Managing Views with UlViewController | |
| |
| |
| |
Presenting Sharing Options with UIActivityViewController | |
| |
| |
| |
Presenting Custom Sharing Options with UIActivityViewController | |
| |
| |
| |
Implementing Navigation with UINavigationController | |
| |
| |
| |
Manipulating a Navigation Controller's Array of View Controllers | |
| |
| |
| |
Displaying an Image on a Navigation Bar | |
| |
| |
| |
Adding Buttons to Navigation Bars Using UIBarButtonItem | |
| |
| |
| |
Presenting Multiple View Controllers with UITabBarController | |
| |
| |
| |
Displaying Static Text with UILabel | |
| |
| |
| |
Customizing the UILabel | |
| |
| |
| |
Accepting User Text Input with UITextField | |
| |
| |
| |
Displaying Long Lines of Text with UITextView | |
| |
| |
| |
Adding Buttons to the User Interface with UIButton | |
| |
| |
| |
Displaying Images with UIImageView | |
| |
| |
| |
Creating Scrollable Content with UIScrollView | |
| |
| |
| |
Loading Web Pages with UIWebView | |
| |
| |
| |
Displaying Progress with UIProgressView | |
| |
| |
| |
Constructing and Displaying Styled Texts | |
| |
| |
| |
Presenting Master-Detail Views with UISplitViewController | |
| |
| |
| |
Enabling Paging with UIPageViewController | |
| |
| |
| |
Displaying Popovers with UIPopoverController | |
| |
| |
| |
Creating Dynamic and Interactive User Interfaces | |
| |
| |
| |
Adding Gravity to Your UI Components | |
| |
| |
| |
Detecting and Reacting to Collisions Between UI Components | |
| |
| |
| |
Animating Your UI Components with a Push | |
| |
| |
| |
Attaching Multiple Dynamic Items to Each Other | |
| |
| |
| |
Adding a Dynamic Snap Effect to Your UI Components | |
| |
| |
| |
Assigning Characteristics to Your Dynamic Effects | |
| |
| |
| |
Auto Layout and the Visual Format Language | |
| |
| |
| |
Placing UI Components in the Center of the Screen | |
| |
| |
| |
Defining Horizontal and Vertical Constraints with the Visual Format Language | |
| |
| |
| |
Utilizing Cross View Constraints | |
| |
| |
| |
Configuring Auto Layout Constraints in Interface Builder | |
| |
| |
| |
Constructing and Using Table Views | |
| |
| |
| |
Populating a Table View with Data | |
| |
| |
| |
Using Different Types of Accessories in a Table View Cell | |
| |
| |
| |
Creating Custom Table View Cell Accessories | |
| |
| |
| |
Enabling Swipe Deletion of Table View Cells | |
| |
| |
| |
Constructing Headers and Footers in Table Views | |
| |
| |
| |
Displaying Context Menus on Table View Cells | |
| |
| |
| |
Moving Cells and Sections in Table Views | |
| |
| |
| |
Deleting Cells and Sections from Table Views | |
| |
| |
| |
Utilizing the UITableViewController for Easy Creation of Table Views | |
| |
| |
| |
Displaying a Refresh Control for Table Views | |
| |
| |
| |
Building Complex Layouts with Collection Views | |
| |
| |
| |
Constructing Collection Views | |
| |
| |
| |
Assigning a Data Source to a Collection View | |
| |
| |
| |
Providing a Flow Layout to a Collection View | |
| |
| |
| |
Providing Basic Content to a Collection View | |
| |
| |
| |
Feeding Custom Cells to Collection Views Using .xib Files | |
| |
| |
| |
Handling Events in Collection Views | |
| |
| |
| |
Providing a Header and a Footer in a Flow Layout | |
| |
| |
| |
Adding Custom Interactions to Collection Views | |
| |
| |
| |
Providing Contextual Menus on Collection View Cells | |
| |
| |
| |
Storyboards | |
| |
| |
| |
Adding a Navigation Controller to a Storyboard | |
| |
| |
| |
Passing Data from One Screen to Another | |
| |
| |
| |
Adding a Tab Bar Controller to a Storyboard | |
| |
| |
| |
Introducing Custom Segue Transitions to Your Storyboard | |
| |
| |
| |
Placing Images and Other UI Components on Storyboards | |
| |
| |
| |
Concurrency | |
| |
| |
| |
Constructing Block Objects | |
| |
| |
| |
Accessing Variables in Block Objects | |
| |
| |
| |
Invoking Block Objects | |
| |
| |
| |
Performing UI - Related Tasks with GCD | |
| |
| |
| |
Executing Non-UI Related Tasks Synchronously with GCD | |
| |
| |
| |
Executing Non-UI Related Tasks Asynchronously with GCD | |
| |
| |
| |
Performing Tasks after a Delay with GCD | |
| |
| |
| |
Performing a Task Only Once with GCD | |
| |
| |
| |
Grouping Tasks Together with GCD | |
| |
| |
| |
Constructing Your Own Dispatch Queues with GCD | |
| |
| |
| |
Running Tasks Synchronously with Operations | |
| |
| |
| |
Running Tasks Asynchronously with Operations | |
| |
| |
| |
Creating Dependency Between Operations | |
| |
| |
| |
Creating Timers | |
| |
| |
| |
Creating Concurrency with Threads | |
| |
| |
| |
Invoking Background Methods | |
| |
| |
| |
Exiting Threads and Timers | |
| |
| |
| |
Security | |
| |
| |
| |
Enabling Security and Protection for Your Apps | |
| |
| |
| |
Storing Values in the Keychain | |
| |
| |
| |
Finding Values in the Keychain | |
| |
| |
| |
Updating Existing Values in the Keychain | |
| |
| |
| |
Deleting Exiting Values in the Keychain | |
| |
| |
| |
Sharing Keychain Data Between Multiple Apps | |
| |
| |
| |
Writing to and Reading Keychain Data from iCloud | |
| |
| |
| |
Storing Files Securely in the App Sandbox | |
| |
| |
| |
Securing Your User Interface | |
| |
| |
| |
Core Location and Maps | |
| |
| |
| |
Creating a Map View | |
| |
| |
| |
Handling the Events of a Map View | |
| |
| |
| |
Pinpointing the Location of a Device | |
| |
| |
| |
Displaying Pins on a Map View | |
| |
| |
| |
Displaying Pins with Different Colors on a Map View | |
| |
| |
| |
Displaying Custom Pins on a Map View | |
| |
| |
| |
Converting Meaningful Addresses to Longitude and Latitude | |
| |
| |
| |
Converting Longitude and Latitude to a Meaningful Address | |
| |
| |
| |
Searching on a Map View | |
| |
| |
| |
Displaying Directions on the Map | |
| |
| |
| |
Implementing Gesture Recognizers | |
| |
| |
| |
Detecting Swipe Gestures | |
| |
| |
| |
Detecting Rotation Gestures | |
| |
| |
| |
Detecting Panning and Dragging Gestures | |
| |
| |
| |
Detecting Long-Press Gestures | |
| |
| |
| |
Detecting Tap Gestures | |
| |
| |
| |
Detecting Pinch Gestures | |
| |
| |
| |
Networking, JS0N.XML, and Sharing | |
| |
| |
| |
Downloading Asynchronously with NSURLConnection | |
| |
| |
| |
Handling Timeouts in Asynchronous Connections | |
| |
| |
| |
Downloading Synchronously with NSURLConnection | |
| |
| |
| |
Modifying a URL Request with NSMutableURLRcquest | |
| |
| |
| |
Sending HTTP GET Requests with NSURLConnection | |
| |
| |
| |
Sending HTTP POST Requests with NSURLConnection | |
| |
| |
| |
Sending HTTP DELETE Requests with NSURLConnection | |
| |
| |
| |
Sending HTTP PUT Requests with NSURLConnection | |
| |
| |
| |
Serializing Arrays and Dictionaries into JSON | |
| |
| |
| |
Deserializing JSON into Arrays and Dictionaries | |
| |
| |
| |
Integrating Social Sharing into Your Apps | |
| |
| |
| |
Parsing XML with NSXMLParser | |
| |
| |
| |
Audio and Video | |
| |
| |
| |
Playing Audio Files | |
| |
| |
| |
Handling Interruptions While Playing Audio | |
| |
| |
| |
Recording Audio | |
| |
| |
| |
Handling Interruptions While Recording Audio | |
| |
| |
| |
Playing Audio over Other Active Sounds | |
| |
| |
| |
Playing Video Files | |
| |
| |
| |
Capturing Thumbnails from Video Files | |
| |
| |
| |
Accessing the Music Library | |
| |
| |
| |
Address Book | |
| |
| |
| |
Requesting Access to the Address Book | |
| |
| |
| |
Retrieving a Reference to an Address Book | |
| |
| |
| |
Retrieving All the People in the Address Book | |
| |
| |
| |
Retrieving Properties of Address Book Entries | |
| |
| |
| |
Inserting a Person Entry into the Address Book | |
| |
| |
| |
Inserting a Group Entry into the Address Book | |
| |
| |
| |
Adding Persons to Groups | |
| |
| |
| |
Searching the Address Book | |
| |
| |
| |
Retrieving and Setting a Persons Address Book Image | |
| |
| |
| |
Files and Folder Management | |
| |
| |
| |
Finding the Paths of the Most Useful Folders on Disk | |
| |
| |
| |
Writing to and Reading from Files | |
| |
| |
| |
Creating Folders on Disk | |
| |
| |
| |
Enumerating Files and Folders | |
| |
| |
| |
Deleting Files and Folders | |
| |
| |
| |
Saving Objects to Files | |
| |
| |
| |
Camera and the Photo Library | |
| |
| |
| |
Detecting and Probing the Camera | |
| |
| |
| |
Taking Photos with the Camera | |
| |
| |
| |
Taking Videos with the Camera | |
| |
| |
| |
Storing Photos in the Photo Library | |
| |
| |
| |
Storing Videos in the Photo Library | |
| |
| |
| |
Retrieving Photos and Videos from the Photo Library | |
| |
| |
| |
Retrieving Assets from the Assets Library | |
| |
| |
| |
Editing Videos on an iOS Device | |
| |
| |
| |
Multitasking | |
| |
| |
| |
Detecting the Availability of Multitasking | |
| |
| |
| |
Completing a Long-Running Task in the Background | |
| |
| |
| |
Adding Background Fetch Capabilities to Your Apps | |
| |
| |
| |
Playing Audio in the Background | |
| |
| |
| |
Handling Location Changes in the Background | |
| |
| |
| |
Saving and Loading the State of Multitasking Apps | |
| |
| |
| |
Handling Network Connections in the Background | |
| |
| |
| |
Opting Out of Multitasking | |
| |
| |
| |
Notifications | |
| |
| |
| |
Sending Notifications | |
| |
| |
| |
Listening for and Reacting to Notifications | |
| |
| |
| |
Listening and Reacting to Keyboard Notifications | |
| |
| |
| |
Scheduling Local Notifications | |
| |
| |
| |
Listening for and Reacting to Local Notifications | |
| |
| |
| |
Handling Local System Notifications | |
| |
| |
| |
Setting Up Your App for Push Notifications | |
| |
| |
| |
Delivering Push Notifications to Your App | |
| |
| |
| |
Reacting to Push Notifications | |
| |
| |
| |
Core Data | |
| |
| |
| |
Creating a Core Data Model with Xcode | |
| |
| |
| |
Generating Class Files for Core Data Entities | |
| |
| |
| |
Creating and Saving Data Using Core Data | |
| |
| |
| |
Reading Data from Core Data | |
| |
| |
| |
Deleting Data from Core Data | |
| |
| |
| |
Sorting Data in Core Data | |
| |
| |
| |
Boosting Data Access in Table Views | |
| |
| |
| |
Implementing Relationships in Core Data | |
| |
| |
| |
Fetching Data in the Background | |
| |
| |
| |
Using Custom Data Types in Your Core Data Model | |
| |
| |
| |
Dates, Calendars, and Events | |
| |
| |
| |
Requesting Permission to Access Calendars | |
| |
| |
| |
Retrieving Calendar Groups on an iOS Device | |
| |
| |
| |
Adding Events to Calendars | |
| |
| |
| |
Accessing the Contents of Calendars | |
| |
| |
| |
Removing Events from Calendars | |
| |
| |
| |
Adding Recurring Events to Calendars | |
| |
| |
| |
Retrieving the Attendees of an Event | |
| |
| |
| |
Adding Alarms to Calendars | |
| |
| |
| |
Handling Event Changed Notifications | |
| |
| |
| |
Presenting Event View Controllers | |
| |
| |
| |
Presenting Event Edit View Controllers | |
| |
| |
| |
Graphics and Animations | |
| |
| |
| |
Enumerating and Loading Fonts | |
| |
| |
| |
Drawing Text | |
| |
| |
| |
Constructing, Setting, and Using Colors | |
| |
| |
| |
Drawing Images | |
| |
| |
| |
Constructing Resizable Images | |
| |
| |
| |
Drawing Lines | |
| |
| |
| |
Constructing Paths | |
| |
| |
| |
Drawing Rectangles | |
| |
| |
| |
Adding Shadows to Shapes | |
| |
| |
| |
Drawing Gradients | |
| |
| |
| |
Moving Shapes Drawn on Graphic Contexts | |
| |
| |
| |
Scaling Shapes Drawn on Graphic Contexts | |
| |
| |
| |
Rotating Shapes Drawn on Graphic Contexts | |
| |
| |
| |
Animating and Moving Views | |
| |
| |
| |
Animating and Scaling Views | |
| |
| |
| |
Animating and Rotating Views | |
| |
| |
| |
Capturing a Screenshot of Your View into an Image | |
| |
| |
| |
Core Motion | |
| |
| |
| |
Detecting the Availability of an Accelerometer | |
| |
| |
| |
Detecting the Availability of a Gyroscope | |
| |
| |
| |
Retrieving Accelerometer Data | |
| |
| |
| |
Detecting Shakes on an iOS Device | |
| |
| |
| |
Retrieving Gyroscope Data | |
| |
| |
| |
iCloud | |
| |
| |
| |
Setting Up Your App for iCloud | |
| |
| |
| |
Storing and Synchronizing Dictionaries in iCloud | |
| |
| |
| |
Creating and Managing Folders for Apps in iCloud | |
| |
| |
| |
Searching for Files and Folders in iCloud | |
| |
| |
| |
Storing User Documents in iCloud | |
| |
| |
| |
Managing the State of Documents in iCloud | |
| |
| |
| |
Pass Kit | |
| |
| |
| |
Creating Pass Kit Certificates | |
| |
| |
| |
Creating Pass Files | |
| |
| |
| |
Providing Icons and Images for Passes | |
| |
| |
| |
Preparing Your Passes for Digital Signature | |
| |
| |
| |
Signing Passes Digitally | |
| |
| |
| |
Distributing Passes Using Email | |
| |
| |
| |
Distributing Passes Using Web Services | |
| |
| |
| |
Enabling Your iOS Apps to Access Passes on iOS Devices | |
| |
| |
| |
Interacting with Passbook Programmatically | |
| |
| |
Index | |