ebook img

Programming iOS 7 PDF

929 Pages·2014·11.803 MB·English
by  NeuburgMatt
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Programming iOS 7

FOURTH EDITION Programming iOS 7 Matt Neuburg Programming iOS 7, Fourth Edition by Matt Neuburg Copyright © 2014 Matt Neuburg. 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 [email protected]. Editor: Rachel Roumeliotis Cover Designer: Randy Comer Production Editor: Kristen Brown Interior Designer: David Futato Proofreader: O’Reilly Production Services Illustrator: Matt Neuburg Indexer: Matt Neuburg May 2011: First Edition March 2012: Second Edition March 2013: Third Edition December 2013: Fourth Edition Revision History for the Fourth Edition: 2013-12-09: First release See http://oreilly.com/catalog/errata.csp?isbn=9781449372347 for release details. Nutshell Handbook, the Nutshell Handbook logo, and the O’Reilly logo are registered trademarks of O’Reilly Media, Inc. Programming iOS 7, the image of a kingbird, 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-37234-7 [LSI] Table of Contents Preface. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv Part I. Views 1. Views. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 The Window 4 Experimenting With Views 7 Subview and Superview 8 Visibility and Opacity 11 Frame 12 Bounds and Center 13 Transform 16 Layout 22 Autoresizing 23 Autolayout 27 Constraints in the Nib 38 Order of Layout Events 45 Autolayout and View Transforms 46 2. Drawing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 UIImage and UIImageView 49 Resizable Images 53 Image Rendering Mode 56 Graphics Contexts 58 UIImage Drawing 61 CGImage Drawing 63 Snapshots 66 CIFilter and CIImage 68 Drawing a UIView 72 iii Graphics Context Settings 74 Paths and Shapes 75 Clipping 79 Gradients 80 Colors and Patterns 82 Graphics Context Transforms 84 Shadows 86 Erasing 87 Points and Pixels 88 Content Mode 89 3. Layers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 View and Layer 92 Layers and Sublayers 94 Manipulating the Layer Hierarchy 97 Positioning a Sublayer 98 CAScrollLayer 99 Layout of Sublayers 99 Drawing in a Layer 100 Content Resizing and Positioning 104 Layers that Draw Themselves 106 Transforms 108 Depth 111 Shadows, Borders, and Masks 115 Layer Efficiency 116 Layers and Key–Value Coding 118 4. Animation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 Drawing, Animation, and Threading 122 UIImageView and UIImage Animation 125 View Animation 126 Block-Based View Animation 127 View Animation Options 129 Springing View Animation 134 Keyframe View Animation 134 Transitions 136 Implicit Layer Animation 138 Animation Transactions 140 Media Timing Functions 141 Core Animation 143 CABasicAnimation and Its Inheritance 143 Using a CABasicAnimation 145 iv | Table of Contents Keyframe Animation 149 Making a Property Animatable 150 Grouped Animations 151 Transitions 155 Animations List 157 Actions 159 What an Action Is 160 Action Search 160 Hooking Into the Action Search 162 Nonproperty Actions 164 Emitter Layers 166 CIFilter Transitions 171 UIKit Dynamics 174 Motion Effects 180 Animation and Autolayout 181 5. Touches. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 Touch Events and Views 186 Receiving Touches 187 Restricting Touches 189 Interpreting Touches 190 Gesture Recognizers 195 Gesture Recognizer Classes 195 Gesture Recognizer Conflicts 200 Subclassing Gesture Recognizers 203 Gesture Recognizer Delegate 205 Gesture Recognizers in the Nib 207 Touch Delivery 208 Hit-Testing 208 Initial Touch Event Delivery 214 Gesture Recognizer and View 214 Touch Exclusion Logic 216 Gesture Recognition Logic 216 Touches and the Responder Chain 218 Part II. Interface 6. View Controllers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223 View Controller Responsibilities 224 View Controller Hierarchy 225 View Controller Creation 231 Table of Contents | v How a View Controller Gets Its View 234 Manual View 235 Generic Automatic View 237 View in a Separate Nib 238 Nib-Instantiated View Controller 241 Storyboard-Instantiated View Controller 243 View Resizing and the Status Bar 245 Rotation 251 Rotation and Layout Events 254 Initial Orientation 258 Presented View Controller 261 Presenting a View 262 Communication With a Presented View Controller 264 Presented View Animation 267 Presentation Styles 268 Rotation of a Presented View 271 Presenting a View in Response to Rotation 273 Tab Bar Controllers 274 Tab Bar Items 276 Configuring a Tab Bar Controller 277 Navigation Controllers 279 Bar Button Items 282 Navigation Items and Toolbar Items 284 Configuring a Navigation Controller 287 Custom Transition Animations 290 Noninteractive Custom Transition Animation 291 Interactive Custom Transition Animation 294 Custom Presented View Controller Transition 301 Transition Coordinator 308 Page View Controller 310 Container View Controllers 315 Storyboards 320 Segues 322 Container Views 324 Unwind Segues 325 View Controller Lifetime Events 329 Incoherencies in View Controller Events 332 Appear and Disappear Events 332 Manual Event Forwarding to a Child View Controller 333 View Controller Memory Management 335 State Restoration 337 How to Test State Restoration 338 vi | Table of Contents Participating in State Restoration 339 Restoration ID, Identifier Path, and Restoration Class 341 Restoring View Controller State 348 Restoration Order of Operations 353 Restoration of Other Objects 355 Snapshot Suppression 357 7. Scroll Views. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359 Creating a Scroll View in Code 360 Using a Content View 363 Scroll View in a Nib 365 Scrolling 367 Paging 371 Tiling 373 Zooming 375 Zooming Programmatically 376 Zooming with Detail 377 Scroll View Delegate 380 Scroll View Touches 382 Floating Scroll View Subviews 386 Scroll View Performance 387 8. Table Views and Collection Views. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389 Table View Cells 392 Built-In Cell Styles 393 Registering a Cell Class 399 Custom Cells 401 Table View Data 408 The Three Big Questions 409 Reusing Cells 411 Table View Sections 413 Section Index 418 Refreshing Table View Data 419 Variable Row Heights 423 Table View Cell Selection 426 Managing Cell Selection 426 Responding to Cell Selection 427 Navigation From a Table View 429 Cell Choice and Static Tables 430 Table View Scrolling and Layout 432 Table View State Restoration 432 Table View Searching 433 Table of Contents | vii Table View Editing 442 Deleting Table Items 445 Editable Content in Table Items 446 Inserting Table Items 448 Rearranging Table Items 450 Dynamic Table Items 451 Table View Menus 453 Collection Views 455 Collection View Classes 459 Using a Collection View 462 Custom Collection View Layouts 465 Switching Layouts 469 Collection Views and UIKit Dynamics 470 9. Popovers and Split Views. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473 Preparing a Popover 475 Popover Size 476 Popover Appearance Customization 477 Summoning and Dismissing a Popover 480 Popover Segues 480 Managing a Popover Controller 481 Dismissing a Popover 482 Popovers During Rotation or Backgrounding 485 Popovers and Presented Views 486 Automatic Popovers 487 Split Views 489 Using a Split View 489 Split Views in a Storyboard 491 Other Split View Configurations 492 10. Text. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493 Fonts 494 Fonts and Dynamic Type 494 Font Descriptors 497 Attributed Strings 499 Attributed String Attributes 500 Making an Attributed String 503 Modifying and Querying an Attributed String 508 Measuring and Drawing an Attributed String 509 Labels 511 Number of Lines 511 Wrapping and Truncation 512 viii | Table of Contents

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.