IOS Auto Layout Demystified
IOS Auto Layout Demystified
Click to enlarge
Author(s): Sadun, Erica
ISBN No.: 9780321967190
Pages: 288
Year: 201310
Format: Trade Paper
Price: $ 38.64
Status: Out Of Print

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


To be able to view the table of contents for this publication then please subscribe by clicking the button below...
To be able to view the full description for this publication then please subscribe by clicking the button below...