ios 7 programming cookbook

1.1K 1.5K 1
ios 7 programming cookbook

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

www.it-ebooks.info www.it-ebooks.info Vandad Nahavandipoor iOS 7 Programming Cookbook www.it-ebooks.info iOS 7 Programming Cookbook by Vandad Nahavandipoor Copyright © 2014 Vandad Nahavandipoor. All rights reserved. Printed in the United States of America. Published by O’Reilly Media, Inc., 1005 Gravenstein Highway North, Sebastopol, CA 95472. O’Reilly books may be purchased for educational, business, or sales promotional use. Online editions are also available for most titles (http://my.safaribooksonline.com). For more information, contact our corporate/ institutional sales department: 800-998-9938 or corporate@oreilly.com. Editors: Andy Oram and Rachel Roumeliotis Production Editor: Christopher Hearse Copyeditor: Zyg Group, LLC Proofreader: Julie Van Keuren Indexer: Angela Howard Cover Designer: Randy Comer Interior Designer: David Futato Illustrator: Rebecca Demarest October 2013: First Edition Revision History for the First Edition: 2013-10-09: First release See http://oreilly.com/catalog/errata.csp?isbn=9781449372422 for release details. Nutshell Handbook, the Nutshell Handbook logo, and the O’Reilly logo are registered trademarks of O’Reilly Media, Inc., iOS 7 Programming Cookbook, the image of a Cowan’s shrew tenrec, and related trade dress are trademarks of O’Reilly Media, Inc. Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in this book, and O’Reilly Media, Inc., was aware of a trade‐ mark claim, the designations have been printed in caps or initial caps. While every precaution has been taken in the preparation of this book, the publisher and author assume no responsibility for errors or omissions, or for damages resulting from the use of the information contained herein. ISBN: 978-1-449-37242-2 [QG] www.it-ebooks.info Table of Contents Preface. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi 1. Implementing Controllers and Views. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.1. Displaying Alerts with UIAlertView 23 1.2. Creating and Using Switches with UISwitch 32 1.3. Customizing the UISwitch 36 1.4. Picking Values with the UIPickerView 39 1.5. Picking the Date and Time with UIDatePicker 45 1.6. Implementing Range Pickers with UISlider 50 1.7. Customizing the UISlider 54 1.8. Grouping Compact Options with UISegmentedControl 59 1.9. Presenting and Managing Views with UIViewController 63 1.10. Presenting Sharing Options with UIActivityViewController 67 1.11. Presenting Custom Sharing Options with UIActivityViewController 73 1.12. Implementing Navigation with UINavigationController 79 1.13. Manipulating a Navigation Controller’s Array of View Controllers 85 1.14. Displaying an Image on a Navigation Bar 86 1.15. Adding Buttons to Navigation Bars Using UIBarButtonItem 88 1.16. Presenting Multiple View Controllers with UITabBarController 94 1.17. Displaying Static Text with UILabel 101 1.18. Customizing the UILabel 105 1.19. Accepting User Text Input with UITextField 108 1.20. Displaying Long Lines of Text with UITextView 118 1.21. Adding Buttons to the User Interface with UIButton 123 1.22. Displaying Images with UIImageView 127 1.23. Creating Scrollable Content with UIScrollView 132 1.24. Loading Web Pages with UIWebView 137 1.25. Displaying Progress with UIProgressView 141 1.26. Constructing and Displaying Styled Texts 143 iii www.it-ebooks.info 1.27. Presenting Master-Detail Views with UISplitViewController 148 1.28. Enabling Paging with UIPageViewController 153 1.29. Displaying Popovers with UIPopoverController 158 2. Creating Dynamic and Interactive User Interfaces. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 2.1. Adding Gravity to Your UI Components 171 2.2. Detecting and Reacting to Collisions Between UI Components 172 2.3. Animating Your UI Components with a Push 180 2.4. Attaching Multiple Dynamic Items to Each Other 184 2.5. Adding a Dynamic Snap Effect to Your UI Components 189 2.6. Assigning Characteristics to Your Dynamic Effects 192 3. Auto Layout and the Visual Format Language. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197 3.1. Placing UI Components in the Center of the Screen 201 3.2. Defining Horizontal and Vertical Constraints with the Visual Format Language 203 3.3. Utilizing Cross View Constraints 210 3.4. Configuring Auto Layout Constraints in Interface Builder 217 4. Constructing and Using Table Views. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221 4.1. Populating a Table View with Data 225 4.2. Using Different Types of Accessories in a Table View Cell 229 4.3. Creating Custom Table View Cell Accessories 232 4.4. Enabling Swipe Deletion of Table View Cells 235 4.5. Constructing Headers and Footers in Table Views 237 4.6. Displaying Context Menus on Table View Cells 246 4.7. Moving Cells and Sections in Table Views 251 4.8. Deleting Cells and Sections from Table Views 257 4.9. Utilizing the UITableViewController for Easy Creation of Table Views 268 4.10. Displaying a Refresh Control for Table Views 274 5. Building Complex Layouts with Collection Views. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279 5.1. Constructing Collection Views 281 5.2. Assigning a Data Source to a Collection View 284 5.3. Providing a Flow Layout to a Collection View 285 5.4. Providing Basic Content to a Collection View 288 5.5. Feeding Custom Cells to Collection Views Using .xib Files 294 5.6. Handling Events in Collection Views 299 5.7. Providing a Header and a Footer in a Flow Layout 303 5.8. Adding Custom Interactions to Collection Views 308 iv | Table of Contents www.it-ebooks.info 5.9. Providing Contextual Menus on Collection View Cells 311 6. Storyboards. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315 6.1. Adding a Navigation Controller to a Storyboard 316 6.2. Passing Data from One Screen to Another 318 6.3. Adding a Tab Bar Controller to a Storyboard 325 6.4. Introducing Custom Segue Transitions to Your Storyboard 328 6.5. Placing Images and Other UI Components on Storyboards 332 7. Concurrency. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335 7.1. Constructing Block Objects 342 7.2. Accessing Variables in Block Objects 346 7.3. Invoking Block Objects 352 7.4. Performing UI-Related Tasks with GCD 354 7.5. Executing Non-UI Related Tasks Synchronously with GCD 358 7.6. Executing Non-UI Related Tasks Asynchronously with GCD 361 7.7. Performing Tasks after a Delay with GCD 368 7.8. Performing a Task Only Once with GCD 371 7.9. Grouping Tasks Together with GCD 373 7.10. Constructing Your Own Dispatch Queues with GCD 377 7.11. Running Tasks Synchronously with Operations 380 7.12. Running Tasks Asynchronously with Operations 387 7.13. Creating Dependency Between Operations 393 7.14. Creating Timers 395 7.15. Creating Concurrency with Threads 400 7.16. Invoking Background Methods 406 7.17. Exiting Threads and Timers 407 8. Security. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411 8.1. Enabling Security and Protection for Your Apps 418 8.2. Storing Values in the Keychain 422 8.3. Finding Values in the Keychain 424 8.4. Updating Existing Values in the Keychain 429 8.5. Deleting Exiting Values in the Keychain 432 8.6. Sharing Keychain Data Between Multiple Apps 434 8.7. Writing to and Reading Keychain Data from iCloud 440 8.8. Storing Files Securely in the App Sandbox 443 8.9. Securing Your User Interface 446 9. Core Location and Maps. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 449 9.1. Creating a Map View 450 9.2. Handling the Events of a Map View 452 Table of Contents | v www.it-ebooks.info 9.3. Pinpointing the Location of a Device 453 9.4. Displaying Pins on a Map View 455 9.5. Displaying Pins with Different Colors on a Map View 459 9.6. Displaying Custom Pins on a Map View 465 9.7. Converting Meaningful Addresses to Longitude and Latitude 468 9.8. Converting Longitude and Latitude to a Meaningful Address 470 9.9. Searching on a Map View 472 9.10. Displaying Directions on the Map 475 10. Implementing Gesture Recognizers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481 10.1. Detecting Swipe Gestures 483 10.2. Detecting Rotation Gestures 485 10.3. Detecting Panning and Dragging Gestures 489 10.4. Detecting Long-Press Gestures 491 10.5. Detecting Tap Gestures 495 10.6. Detecting Pinch Gestures 497 11. Networking, JSON, XML, and Sharing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 501 11.1. Downloading Asynchronously with NSURLConnection 501 11.2. Handling Timeouts in Asynchronous Connections 504 11.3. Downloading Synchronously with NSURLConnection 506 11.4. Modifying a URL Request with NSMutableURLRequest 508 11.5. Sending HTTP GET Requests with NSURLConnection 509 11.6. Sending HTTP POST Requests with NSURLConnection 511 11.7. Sending HTTP DELETE Requests with NSURLConnection 513 11.8. Sending HTTP PUT Requests with NSURLConnection 514 11.9. Serializing Arrays and Dictionaries into JSON 516 11.10. Deserializing JSON into Arrays and Dictionaries 518 11.11. Integrating Social Sharing into Your Apps 521 11.12. Parsing XML with NSXMLParser 525 12. Audio and Video. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 531 12.1. Playing Audio Files 531 12.2. Handling Interruptions While Playing Audio 534 12.3. Recording Audio 535 12.4. Handling Interruptions While Recording Audio 542 12.5. Playing Audio over Other Active Sounds 543 12.6. Playing Video Files 547 12.7. Capturing Thumbnails from Video Files 551 12.8. Accessing the Music Library 554 13. Address Book. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 563 vi | Table of Contents www.it-ebooks.info 13.1. Requesting Access to the Address Book 564 13.2. Retrieving a Reference to an Address Book 568 13.3. Retrieving All the People in the Address Book 571 13.4. Retrieving Properties of Address Book Entries 573 13.5. Inserting a Person Entry into the Address Book 577 13.6. Inserting a Group Entry into the Address Book 581 13.7. Adding Persons to Groups 584 13.8. Searching the Address Book 587 13.9. Retrieving and Setting a Person’s Address Book Image 592 14. Files and Folder Management. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 601 14.1. Finding the Paths of the Most Useful Folders on Disk 603 14.2. Writing to and Reading from Files 605 14.3. Creating Folders on Disk 610 14.4. Enumerating Files and Folders 612 14.5. Deleting Files and Folders 618 14.6. Saving Objects to Files 621 15. Camera and the Photo Library. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 625 15.1. Detecting and Probing the Camera 627 15.2. Taking Photos with the Camera 632 15.3. Taking Videos with the Camera 636 15.4. Storing Photos in the Photo Library 639 15.5. Storing Videos in the Photo Library 644 15.6. Retrieving Photos and Videos from the Photo Library 646 15.7. Retrieving Assets from the Assets Library 649 15.8. Editing Videos on an iOS Device 656 16. Multitasking. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 663 16.1. Detecting the Availability of Multitasking 664 16.2. Completing a Long-Running Task in the Background 665 16.3. Adding Background Fetch Capabilities to Your Apps 669 16.4. Playing Audio in the Background 678 16.5. Handling Location Changes in the Background 682 16.6. Saving and Loading the State of Multitasking Apps 684 16.7. Handling Network Connections in the Background 688 16.8. Opting Out of Multitasking 691 17. Notifications. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 693 17.1. Sending Notifications 694 17.2. Listening for and Reacting to Notifications 696 17.3. Listening and Reacting to Keyboard Notifications 700 Table of Contents | vii www.it-ebooks.info 17.4. Scheduling Local Notifications 707 17.5. Listening for and Reacting to Local Notifications 711 17.6. Handling Local System Notifications 714 17.7. Setting Up Your App for Push Notifications 718 17.8. Delivering Push Notifications to Your App 724 17.9. Reacting to Push Notifications 732 18. Core Data. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 735 18.1. Creating a Core Data Model with Xcode 737 18.2. Generating Class Files for Core Data Entities 741 18.3. Creating and Saving Data Using Core Data 745 18.4. Reading Data from Core Data 747 18.5. Deleting Data from Core Data 750 18.6. Sorting Data in Core Data 752 18.7. Boosting Data Access in Table Views 754 18.8. Implementing Relationships in Core Data 761 18.9. Fetching Data in the Background 768 18.10. Using Custom Data Types in Your Core Data Model 772 19. Dates, Calendars, and Events. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 779 19.1. Requesting Permission to Access Calendars 784 19.2. Retrieving Calendar Groups on an iOS Device 790 19.3. Adding Events to Calendars 792 19.4. Accessing the Contents of Calendars 796 19.5. Removing Events from Calendars 799 19.6. Adding Recurring Events to Calendars 803 19.7. Retrieving the Attendees of an Event 808 19.8. Adding Alarms to Calendars 811 19.9. Handling Event Changed Notifications 814 19.10. Presenting Event View Controllers 816 19.11. Presenting Event Edit View Controllers 822 20. Graphics and Animations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 827 20.1. Enumerating and Loading Fonts 833 20.2. Drawing Text 835 20.3. Constructing, Setting, and Using Colors 836 20.4. Drawing Images 841 20.5. Constructing Resizable Images 845 20.6. Drawing Lines 850 20.7. Constructing Paths 858 20.8. Drawing Rectangles 862 20.9. Adding Shadows to Shapes 866 viii | Table of Contents www.it-ebooks.info [...]... O’Reilly Media, Inc 1005 Gravenstein Highway North Sebastopol, CA 95 472 800-998-9938 (in the United States or Canada) 70 7-829-0515 (international or local) 70 7-829-0104 (fax) We have a web page for this book, where we list errata, examples, and any additional information You can access this page at http://oreil.ly /iOS7 -Programming- Cookbook To comment or ask technical questions about this book, send... notifications, and whatnot I have also gone through all the example codes and figures and updated them for iOS 7 iOS 7 is a huge step forward for this amazing operating system that we all, as program‐ mers and users, have grown to love and enjoy programming for You must have noticed how the focus of iOS 7 is on being dynamic: how your UI should adapt to various movements and motions that can be applied to... be required reading for the product design and development teams of any company that develops iOS applications xvi | Preface www.it-ebooks.info I also suggest that you skim through the iOS App Programming Guide” in the iOS Developer Library for some tips and advice on how to make great iOS applications iOS 7 brings with itself quite a lot of changes to how UI components appear on the screen We will... 23.5 Signing Passes Digitally 23.6 Distributing Passes Using Email 23 .7 Distributing Passes Using Web Services 23.8 Enabling Your iOS Apps to Access Passes on iOS Devices 23.9 Interacting with Passbook Programmatically 968 975 984 9 87 989 993 995 9 97 1003 Index 10 07 Table of Contents www.it-ebooks.info | ix www.it-ebooks.info Preface... create better and faster apps for iOS users Apple introduced a lot of cool new APIs to the iOS 7 SDK, and we are going to explore them in this book The focus of iOS 7 is dynamics! Before you read about this book, maybe you’d like to know about my background a bit and how I can help you through this journey I will just briefly let you know who I am and how I got to love iOS I started out writing Basic... require permission We appreciate, but do not require, attribution An attribution usually includes the title, author, publisher, and ISBN For example: iOS 7 Programming Cookbook by Vandad Nahavandipoor (O’Reilly) Copyright 2014 Vandad Nahavandipoor, 978 -1-4493 -72 42-2.” If you feel your use of code examples falls outside fair use or the permission given here, feel free to contact us at permissions@oreilly.com... still be on older versions of iOS, so please consider those users and choose your APIs wisely, depending on the minimum iOS version that you want to target with your apps Apple has recommended that you write your apps so that they support and run on iOS 6 and iOS 7 This means you need to use the latest SDK as your base SDK (the SDK that you use to compile your app) and choose iOS 6 as your target, if that’s... makes it great for both pre- and post -iOS 7 user interfaces (UIs) In order to write apps for iOS 7, you need to know some of the basics of the ObjectiveC programming language that we will use throughout this book Objective-C, as its name implies, is based on C with extensions that allow it to make use of objects Objects and classes are fundamental in object-oriented programming (OOP) languages such as... CHAPTER 1 Implementing Controllers and Views 1.0 Introduction iOS 7 has introduced a lot of new features to users, as well as tons of new APIs for us programmers to use and play with You probably already know that the user interface has drastically changed in iOS 7 This user interface had stayed intact all the way from the first version of iOS till now, and because of this, many apps were coded on the... guides in the official Apple doc‐ umentation that every professional iOS developer should read For starters, I suggest that you have a look at the iOS Human Interface Guidelines for all iOS devices This document will tell you everything you need to know about devel‐ oping engaging and intuitive user interfaces for all iOS devices Every iOS programmer should read this document In fact, I believe this should . Local Notifications 71 1 17. 6. Handling Local System Notifications 71 4 17. 7. Setting Up Your App for Push Notifications 71 8 17. 8. Delivering Push Notifications to Your App 72 4 17. 9. Reacting to Push. GCD 377 7. 11. Running Tasks Synchronously with Operations 380 7. 12. Running Tasks Asynchronously with Operations 3 87 7.13. Creating Dependency Between Operations 393 7. 14. Creating Timers 395 7. 15 www.it-ebooks.info www.it-ebooks.info Vandad Nahavandipoor iOS 7 Programming Cookbook www.it-ebooks.info iOS 7 Programming Cookbook by Vandad Nahavandipoor Copyright © 2014 Vandad Nahavandipoor.

Ngày đăng: 01/08/2014, 17:07

Từ khóa liên quan

Mục lục

  • Copyright

  • Table of Contents

  • Preface

    • Audience

    • Organization of This Book

    • Additional Resources

    • Conventions Used in This Book

    • Using Code Examples

    • Safari® Books Online

    • How to Contact Us

    • Acknowledgments

    • Chapter 1. Implementing Controllers and Views

      • 1.0. Introduction

        • Creating and Running Our First iOS App

        • Defining and Understanding Variables

        • Creating and Taking Advantage of Classes

        • Adding Functionality to Classes with Methods

        • Storing Items in and Retrieving Them from Collections

        • Adding Object Subscripting Support to Your Classes

        • 1.1. Displaying Alerts with UIAlertView

          • Problem

          • Solution

          • Discussion

          • See Also

Tài liệu cùng người dùng

Tài liệu liên quan