Online Sample Chapter
Introducing iOS Auto Layout
Sample Pages
Download the sample pages (includes Chapter 1)
Table of Contents
Preface
Chapter 1: Introducing Auto Layout
Saying “No” to Auto Layout
Saying “Yes” to Auto Layout
Visual Relationships
Content-Driven Layout
Prioritizing Rules
Auto Layout Strengths
Constraints
Satisfiability
Sufficiency
Constraint Attributes
Missing Views
Underconstrained Missing Views
Missing Views with Inconsistent Rules
Tracking Missing Views
Ambiguous Layout
Exercising Ambiguity
Visualizing Constraints
Intrinsic Content Size
Compression Resistance and Content Hugging
Auto Layout and Frames
Visualizing Alignment Rectangles
Image Alignment Insets
Declaring Alignment Rectangles
Implementing Alignment Rectangles
Summary
Chapter 2: Constraints
Constraint Types
Priorities
Conflicting Priorities
Enumerated Priorities
Content Size Constraints
Content Hugging
Compression Resistance
Setting Content Size Constraints
Layout Constraints
Constraint Math
The Layout Constraint Class
First and Second Items
Creating Layout Constraints
Using NSLayoutConstraint
Unary Constraints
Zero-Item Constraints
View Items
Constraints, Hierarchies, and Bounds Systems
Installing Constraints
Removing Constraints
Comparing Constraints
Using Matched Constraints
Laws of Layout Constraints
Summary
Chapter 3: Interface Builder Layout
Constraints in Interface Builder
What’s What in the IB Editor
Beginning Constraints
Constraint Listings
Constraint Colors
Constraint Icons
Constraint Listings and Xcode Labels
Adding Xcode Identities
Selecting Constraints
Inspecting Constraints
The Constraint Attributes Inspector
View Size Inspector
Frame and Layout Rectangles
Constraint Options
Adding User Constraints
Including Your Own Constraints
Conflicting Constraints
Building New Constraints
The Missing Views Problem
Balancing Requests
Balancing Constraint Priorities
Constraints and Outlets
Hybrid Layout
Building a NIB File for Testing
Adding the NIB File in Code
Advantages of Hybrid Layout
Constraints/Resizing Pop-Up Menu
Summary
Chapter 4: Visual Formats
Introducing Visual Format Constraints
Options
Alignment
Combining Options
Skipping Options
Variable Bindings
The Problem with Indirection
Indirection Workaround
Metrics
Real-World Metrics
Format String Structure
Orientation
Retrieving Constraints by Axis
View Names
Superviews
Connections
Empty Connections
Standard Spacers
Numeric Spacers
Referencing the Superview
Spacing from the Superview
Flexible Spaces
Parentheses
Negative Numbers
Priorities
Multiple Views
View Sizes
Format String Components
Getting It Wrong
NSLog and Visual Formats
Constraining to a Superview
View Stretching
Constraining Size
Building Rows or Columns
Matching Sizes
Why You Cannot Distribute Views
How to Pseudo-Distribute Views (Part 1: Equal Centers)
Pseudo-Distributing Views (Part 2: Spacer Views)
Summary
Chapter 5: Debugging Constraints
Reading Console Logs
Example: Autosizing Issues
Solution: Switch Off Autosizing Translation
Example: Auto Layout Conflicts
Solution: Adjusting Priorities
The Nuclear Approach
The Balance Approach
Tracing Ambiguity
Examining Constraint Logs
Example: Alignment Constraint
Example: Standard Spacers
Example: Equation-Based Constraint
Example: Complex Equation
Example: The Multiplier and Constant
A Note about Layout Math
Constraint Equation Strings
Adding Names
Using Nametags
Naming Views
Describing Views
Example: Unexpected Padding
Example: The Hugged Image
Example: View Centering
Retrieving Referencing Constraints
Descent Reports
Example: Ambiguity
Example: Expanding on Console Dumps
Visualizing Constraints
Automating Visualization
Launch Arguments
Internationalization
Doubled Strings
Flipped Interfaces (OS X)
Flipped Interfaces (iOS)
Profiling Cocoa Layout
Auto Layout Rules of Debugging
Summary
Chapter 6: Building with Auto Layout
Basic Principles of Auto Layout
Layout Libraries
Planning Interfaces
Building for Modularity
Updating Constraints
Calling Updates and Animating Changes
Animating Constraint Changes on OS X
Fading Changes
Handling Orientation-Specific Text Layout
Designing for Edge Conditions
Building a View Drawer
Building the Drawer Layout
Managing Layout for Dragged Views
Dragged Views
Window Boundaries
Summary
Chapter 7: Layout Solutions Table Cells
Preserving Image Aspect
Accordion Sizing
Auto Layout
Building a Paged Image Scroll View
Inherent Drawbacks
Centering View Groups
Custom Multipliers and Random Positions
Building Grids
Constraint Animation on Steroids
Summary