Home > Store

iOS Auto Layout Demystified, 2nd Edition

Register your product to gain access to bonus material or receive a coupon.

iOS Auto Layout Demystified, 2nd Edition


  • This product currently is not for sale.
Not for Sale

eBook (Watermarked)

  • Your Price: $19.19
  • List Price: $23.99
  • Includes EPUB, MOBI, and PDF
  • About eBook Formats
  • This eBook includes the following formats, accessible from your Account page after purchase:

    ePub EPUB The open industry format known for its reflowable content and usability on supported mobile devices.

    MOBI MOBI The eBook format compatible with the Amazon Kindle and Amazon Kindle applications.

    Adobe Reader PDF The popular standard, used most often with the free Adobe® Reader® software.

    This eBook requires no passwords or activation to read. We customize your eBook by discreetly watermarking it with your name, making it uniquely yours.


  • Copyright 2014
  • Dimensions: 7" x 9"
  • Pages: 288
  • Edition: 2nd
  • Book
  • ISBN-10: 0-321-96719-4
  • ISBN-13: 978-0-321-96719-0

Completed Updated for iOS 7 and Xcode 5

Auto Layout transforms the way you create iOS user interfaces. As flexible as it is powerful, Auto Layout gives you unprecedented control over your iOS user interfaces. But Auto Layout has a reputation for difficulty. In iOS Auto Layout Demystified, Second Edition, world-renowned iOS developer and author Erica Sadun strips away the confusion, helping you gain Auto Layout mastery the easiest way possible: by example.

Fully updated for iOS 7 and Xcode 5, this tutorial delivers everything Sadun’s guides are famous for: clear explanations, expert tips, proven best practices--and, above all, plenty of code to learn from and reuse.

Step by step, Sadun explains how Auto Layout “thinks,” how it works, where it fits, and why it’s more useful (and simpler) than you ever imagined. She offers practical solutions for a wide variety of real-world iOS development challenges, plus innovative ways to use Auto Layout to build interactive elements, animations, and more.

If you’re an experienced iOS developer, this guide will expand your design possibilities, helping you build apps that are superbly usable and intuitive and stand out even in the most crowded marketplace.

Coverage includes

  • Mastering Auto Layout’s basic concepts, techniques, and approach
  • Defining unambiguous, satisfiable constraints that express your layout exactly how you intend
  • Overcoming obstacles to constraint-based user interface design in Interface Builder
  • Using visual formatting to express how items are laid out vertically and horizontally
  • Making visual formats more flexible with metrics dictionaries and layout options
  • Debugging constraints and deciphering those bewildering Xcode log messages
  • Using descriptive techniques to uncover and express natural relationships in your design
  • Applying iOS Auto Layout techniques in Mac OS X apps too


Related Article

Why the 3.5" Form Factor Still Matters - Even in the Age of the iPhone 5S and Later

Companion Site

Access the sample code associated with iOS Auto Layout Demystified at http://github.com/erica/Auto-Layout-Demystified

Sample Content

Online Sample Chapter

Introducing iOS Auto Layout

Sample Pages

Download the sample pages (includes Chapter 1 and Index)

Table of Contents

Preface     xiii
Chapter 1: Introducing Auto Layout     1

Origins     1
Saying “Yes” to Auto Layout     2
Geometric Relationships     3
Content-Driven Layout     5
Prioritized Rules     6
Inspection and Modularization     6
Incremental Adoption     6
Constraints     7
Satisfiability     7
Sufficiency     8
Constraint Attributes     11
About Those Missing Views     12
Underconstrained Missing Views     13
Missing Views with Inconsistent Rules     14
Tracking Missing Views     14
Ambiguous Layout     15
Exercising Ambiguity     16
Visualizing Constraints     17
Intrinsic Content Size     18
Compression Resistance and Content Hugging     20
Image Embellishments     22
Alignment Rectangles     22
Visualizing Alignment Rectangles     24
Alignment Insets     24
Declaring Alignment Rectangles     26
Implementing Alignment Rectangles     27
Exercises     29
Conclusions     30
Chapter 2: Constraints     31
Constraint Types     31
Priorities     33
Conflicting Priorities     33
Enumerated Priorities     34
Content Size Constraints     36
Intrinsic Content Size     36
Content Hugging     36
Compression Resistance     38
Setting Content Size Constraints in Code     39
Setting Content Size Constraints in IB     40
Building Layout Constraints     41
The Layout Constraint Class     42
Constraint Math     42
First and Second Items     43
Creating Layout Constraints     44
Building NSLayoutConstraint Instances     45
Unary Constraints     45
Zero-Item Constraints Are Illegal     46
View Items     47
Constraints, Hierarchies, and Bounds Systems     48
Installing Constraints     50
Removing Constraints     52
Comparing Constraints     54
Matching Constraints     55
Laws of Layout Constraints     57
Exercises     59
Conclusions     59
Chapter 3: Interface Builder Layout     61
Designing in IB     61
Disabling Auto Layout     62
Opting Out of Auto Layout in Code     63
Combining Autosizing with Auto Layout     64
Basic Layout and Auto-Generated Constraints     64
Inferred Constraints     64
Ambiguity Resolution Constraints     67
Size Constraints     69
A Guided Tour of IB Elements     69
Constraint Listings     76
Xcode Labels     78
Adding Xcode Identities     79
Adding Constraints     80
Dragging     81
Pinning and Aligning     83
Previewing Layouts     85
Inspecting Constraints     88
View Size Inspector     90
Frame and Layout Rectangles     91
Other Size Inspector Items     92
The Resolution Menu     92
Updating Frames and Constraints     92
Adding and Resetting Constraints     93
Clearing Constraints     93
Constraints/Resizing Pop-Up Menu     93
Descendants     94
Siblings and Ancestors     95
The Missing Views Problem     95
Balancing Requests     97
Hybrid Layout     100
Building a Nib File for Testing     100
Adding the Nib File in Code     101
Advantages of Hybrid Layout     102
Removing IB-Generated Constraints     104
Exercises     105
Conclusions     108
Chapter 4: Visual Formats     109
Introducing Visual Format Constraints     109
Options     111
Alignment     112
Skipping Options     113
Variable Bindings     113
The Problem with Indirection     113
Indirection Workaround     114
Metrics     115
Real-World Metrics     115
Format String Structure     116
Orientation     116
Retrieving Constraints by Axis     117
View Names     117
Superviews     118
Connections     118
Empty Connections     118
Standard Spacers     119
Numeric Spacers     120
Referencing the Superview     120
Spacing from the Superview     122
Flexible Spaces     122
Parentheses     123
Negative Numbers     124
Priorities     124
Multiple Views     125
View Sizes     126
Format String Components     128
Getting It Wrong     130
NSLog and Visual Formats     131
Constraining to a Superview     132
View Stretching     133
Constraining Size     134
Building Rows or Columns     135
Matching Sizes     136
Why You Cannot Distribute Views     137
How to Pseudo-Distribute Views (Part 1: Equal Centers)      138
Pseudo-Distributing Views (Part 2: Spacer Views)      140
Exercises     143
Conclusions     143
Chapter 5: Debugging Constraints     145
Xcode Feedback     145
Development Feedback     145
Compiler Feedback     146
Runtime     146
Reading Console Logs     147
Autosizing Issues Example     147
Solution: Switch Off Autosizing Translation     148
Auto Layout Conflicts Example     149
Solution: Adjusting Priorities     150
The Nuclear Approach     150
The Balance Approach     151
Tracing Ambiguity     151
Examining Constraint Logs     152
Alignment Constraint Example     152
Standard Spacers Example     153
Equation-Based Constraint Example     153
Complex Equation Example     154
Multiplier and Constant Example     155
A Note About Layout Math     155
Constraint Equation Strings     156
Adding Names     159
Using Nametags     160
Naming Views     161
Describing Views     161
Unexpected Padding Example     164
The Hugged Image Example     165
View Centering Example     166
Retrieving Referencing Constraints     167
Descent Reports     169
Ambiguity Example     170
Expanding on Console Dumps Example     172
Visualizing Constraints     173
Automating Visualization     174
Launch Arguments     175
Internationalization     177
Doubled Strings (iOS/OS X)      177
Flipped Interfaces (OS X)      178
Flipped Interfaces (iOS)      179
Profiling Cocoa Layout     181
Auto Layout Rules of Debugging     183
Exercises     183
Conclusions     184
Chapter 6: Building with Auto Layout     185
Basic Principles of Auto Layout     185
Layout Libraries     186
Building Libraries     187
Planning Interfaces     190
Building for Modularity     191
Updating Constraints     194
Calling Updates and Animating Changes     195
Animating Constraint Changes on OS X     196
Fading Changes     197
Designing for Edge Conditions     198
Building a View Drawer     200
Building the Drawer Layout     203
Managing Layout for Dragged Views     206
Dragged Views     207
Window Boundaries     208
Exercises     211
Conclusions     211
Chapter 7: Layout Solutions     213
Table Cells     213
Auto Layout and Multiple-Height Table Cells     216
Preserving Image Aspect     217
Accordion Sizing     220
Scroll Views     221
Scroll Views and Pure Auto Layout     222
Hybrid Solution     222
Building a Paged Image Scroll View     223
Centering View Groups     226
Custom Multipliers and Random Positions     228
Building Grids     231
Making Room for the Keyboard     233
Inserting Views at Runtime     236
Adding iOS Frame and Constraint Overlays     237
Motion Effects, Dynamic Text, and Containers     238
Exercises     238
Conclusions     238
Appendix A: Answers to Exercises     241
Chapter 1     241
Chapter 2     242
Chapter 3     243
Chapter 4     245
Chapter 5     247
Chapter 6     248
Chapter 7     249
Index     251


Submit Errata

More Information

Unlimited one-month access with your purchase
Free Safari Membership