Live Activity Layout Constraints on iOS 16
Live Activities in iOS 16 allow apps to display real-time updates directly on the Lock Screen and inside the Dynamic Island. To preserve system stability, visual consistency, and battery life, Apple imposes strict layout constraints and dimension limits on these interfaces via WidgetKit and SwiftUI. This article breaks down the physical size restrictions, view hierarchy limits, and system-enforced clipping mechanisms that govern Live Activities across iOS 16 devices.
Lock Screen Dimension Boundaries
On the Lock Screen, a Live Activity is treated as an expanded notification presentation, meaning its width is controlled entirely by the operating system. It automatically fills the standard notification container width, applying system-managed margins on the leading and trailing edges.
Vertically, Live Activities have an absolute height cap. While Apple does not enforce a single fixed pixel value due to Dynamic Type variations, the system typically restricts the maximum height to roughly 160 points (and up to 220 points under specific large-format configurations). If your SwiftUI view hierarchy exceeds this height ceiling:
- Vertical Truncation: The system does not expand the banner indefinitely. It clips excess content off the bottom edge.
- No Scrolling: Scrollable containers like
ScrollVieware explicitly unsupported. If content overflows the height boundary, users cannot scroll to see it. - Aspect Ratios: Media elements, such as progress bars or custom charts, must use flexible layout rules to prevent pushing text elements out of the visible container area.
Dynamic Island Layout Constraints
For devices featuring the Dynamic Island (introduced with the iPhone 14 Pro on iOS 16.1), the system imposes four distinct presentation contexts, each governed by strict coordinate and bounding constraints:
1. Compact Presentation
When only one app has an active Live Activity, the system splits the layout into two small anchor zones on either side of the camera cutout:
- Compact Leading: Positioned to the left of the TrueDepth camera, ideal for small icons or short status indicators (typically restricted to around 20–30 points in width).
- Compact Trailing: Positioned to the right of the cutout, designed for minimal text such as timers or scores (typically constrained to roughly 40–50 points wide).
Views that exceed these small dimensions are truncated or can distort adjacent elements.
2. Minimal Presentation
When multiple apps have running Live Activities, the Dynamic Island enters minimal mode. One app shares the primary cutout, while the other is separated into a detached circular bubble. The layout constraint here is an exact circular or capsule footprint, roughly equivalent to the system camera/microphone indicator sizes. Content must fit within a square aspect ratio (approximately 20×20 points).
3. Expanded Presentation
When a user long-presses a compact or minimal Live Activity, the Dynamic Island expands into a larger overlay. The system segments this space into strict predefined layout quadrants:
leadingandtrailing: Top-aligned regions flanking the camera cutout.center: Space directly below the cutout.bottom: A full-width horizontal container placed under the center region.
The expanded presentation enforces a maximum width that matches the primary display bounds minus standard margins, with a vertical height limit generally restricted to approximately 160 to 200 points.
System Enforcement and Rendering Safeguards
To prevent apps from breaking the system layout, iOS 16 applies several non-negotiable rendering rules:
- Automatic Clipping: The system applies strict clipping masks to all Live Activity containers. Elements utilizing negative padding, offset modifiers, or oversized fixed frames cannot break past the container boundaries.
- Dynamic Type Compression: When users increase system text size, the overall container does not scale indefinitely. Instead, the layout prioritizes system-critical views, meaning non-essential text elements are truncated with ellipses once the height limit is reached.
- Interaction Limits: Live Activities do not accept
custom gesture recognizers. Aside from specific deep-link targets
utilizing SwiftUI
Linkor standard widget URL schemes, touch areas are tightly scoped by the system container itself.