Bird
Raised Fist0
iOS Swiftmobile~5 mins

Alignment and spacing in iOS Swift - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is the purpose of alignment in iOS Swift UI layout?
Alignment controls how views are positioned relative to each other or their container, such as left, center, or right alignment.
Click to reveal answer
beginner
How does spacing affect UI elements in SwiftUI?
Spacing adds empty space between UI elements to improve readability and visual balance.
Click to reveal answer
beginner
Which SwiftUI container uses alignment and spacing parameters to arrange child views horizontally?
HStack arranges child views horizontally and lets you set alignment and spacing between them.
Click to reveal answer
beginner
What does the .padding() modifier do in SwiftUI?
.padding() adds space around a view’s content, pushing it away from neighboring views or edges.
Click to reveal answer
intermediate
How can you align text to the center inside a VStack in SwiftUI?
Set the VStack's alignment to .center or use the .multilineTextAlignment(.center) modifier on the Text view.
Click to reveal answer
Which SwiftUI container arranges views vertically with optional spacing?
AList
BHStack
CZStack
DVStack
What does the spacing parameter control in an HStack?
AThe space between the HStack and its parent
BThe space between child views inside the HStack
CThe padding inside each child view
DThe alignment of child views
How do you add space around a view in SwiftUI?
AUse .padding() modifier
BUse .frame() modifier
CUse .background() modifier
DUse .offset() modifier
Which alignment option centers views horizontally in a VStack?
A.center
B.trailing
C.leading
D.top
What does the ZStack do in SwiftUI?
AArranges views horizontally
BArranges views vertically
CStacks views on top of each other
DCreates a list of views
Explain how alignment and spacing work together to create a clean UI layout in SwiftUI.
Think about how you arrange items on a shelf with equal gaps and lined up edges.
You got /4 concepts.
    Describe how you would center a text label inside a vertical stack with some space around it.
    Imagine placing a sign in the middle of a shelf with some empty space around it.
    You got /3 concepts.

      Practice

      (1/5)
      1. Which SwiftUI view modifier aligns text to the center horizontally within its container?
      easy
      A. .background(Color.blue)
      B. .multilineTextAlignment(.center)
      C. .padding()
      D. .frame(alignment: .leading)

      Solution

      1. Step 1: Understand text alignment modifiers

        The .multilineTextAlignment modifier controls horizontal alignment of text inside its view.
      2. Step 2: Identify the center alignment option

        Using .multilineTextAlignment(.center) centers the text horizontally.
      3. Final Answer:

        .multilineTextAlignment(.center) -> Option B
      4. Quick Check:

        Text alignment center = .multilineTextAlignment(.center) [OK]
      Hint: Use .multilineTextAlignment for text horizontal alignment [OK]
      Common Mistakes:
      • Confusing .frame(alignment:) with text alignment
      • Using .padding() expecting alignment effect
      • Thinking .background affects alignment
      2. Which of the following is the correct syntax to add a fixed horizontal space of 20 points between two views in SwiftUI?
      easy
      A. Spacer().frame(width: 20)
      B. Spacer(minLength: 20)
      C. Spacer().padding(20)
      D. Spacer().frame(height: 20)

      Solution

      1. Step 1: Understand Spacer behavior

        Spacer creates flexible space, but to fix size, we use frame modifier.
      2. Step 2: Set fixed width for horizontal spacing

        Using Spacer().frame(width: 20) creates a fixed horizontal space of 20 points.
      3. Final Answer:

        Spacer().frame(width: 20) -> Option A
      4. Quick Check:

        Fixed horizontal space = Spacer with frame width [OK]
      Hint: Use Spacer with .frame(width:) for fixed horizontal space [OK]
      Common Mistakes:
      • Using minLength parameter which is optional and flexible
      • Setting frame height instead of width for horizontal space
      • Using padding which adds space inside view, not between views
      3. What will be the horizontal alignment of the text inside this VStack?
      VStack(alignment: .leading) {
        Text("Hello")
        Text("World")
      }
      medium
      A. Both texts aligned to the leading (left) edge horizontally
      B. Both texts aligned to the center horizontally
      C. Texts aligned independently with default center alignment
      D. Texts aligned to the trailing (right) edge horizontally

      Solution

      1. Step 1: Understand VStack alignment parameter

        VStack's alignment parameter sets horizontal alignment for its child views.
      2. Step 2: Identify .leading alignment effect

        Using .leading aligns all child views to the left edge horizontally.
      3. Final Answer:

        Both texts aligned to the leading (left) edge horizontally -> Option A
      4. Quick Check:

        VStack(alignment: .leading) aligns children left [OK]
      Hint: VStack(alignment: .leading) aligns children left horizontally [OK]
      Common Mistakes:
      • Assuming default center alignment overrides VStack alignment
      • Confusing VStack alignment with Text alignment modifiers
      • Thinking alignment affects vertical position
      4. Identify the error in this SwiftUI code that tries to add space between two buttons:
      HStack {
        Button("OK") {}
        Spacer(20)
        Button("Cancel") {}
      }
      medium
      A. Buttons must be wrapped in VStack, not HStack
      B. Button labels must be Text views, not strings
      C. Spacer must be replaced with padding for spacing
      D. Spacer cannot take a direct integer parameter like 20

      Solution

      1. Step 1: Check Spacer usage

        Spacer does not accept an integer parameter directly; it uses minLength as a named parameter.
      2. Step 2: Correct Spacer syntax

        Correct usage is Spacer(minLength: 20) or Spacer().frame(width: 20) for fixed space.
      3. Final Answer:

        Spacer cannot take a direct integer parameter like 20 -> Option D
      4. Quick Check:

        Spacer parameter must be named minLength [OK]
      Hint: Spacer needs named minLength parameter, not direct integer [OK]
      Common Mistakes:
      • Passing integer without parameter name to Spacer
      • Confusing Spacer with padding for spacing
      • Thinking Button labels must be Text views
      5. You want to create a horizontal stack with three Text views spaced evenly across the screen width. Which code snippet achieves this best?
      hard
      A. HStack { Text("One") Text("Two") Text("Three") }.frame(maxWidth: .infinity, alignment: .center)
      B. HStack(spacing: 50) { Text("One") Text("Two") Text("Three") }
      C. HStack { Text("One") Spacer() Text("Two") Spacer() Text("Three") }
      D. VStack { Text("One") Spacer() Text("Two") Spacer() Text("Three") }

      Solution

      1. Step 1: Understand even spacing with Spacer

        Using Spacer() between views adds flexible space that pushes views apart evenly.
      2. Step 2: Analyze each option

        HStack { Text("One") Spacer() Text("Two") Spacer() Text("Three") } uses Spacer() between Text views inside HStack, distributing them evenly horizontally.
      3. Step 3: Exclude other options

        HStack(spacing: 50) { Text("One") Text("Two") Text("Three") } uses fixed spacing, not flexible. HStack { Text("One") Text("Two") Text("Three") }.frame(maxWidth: .infinity, alignment: .center) centers all texts together. VStack { Text("One") Spacer() Text("Two") Spacer() Text("Three") } uses VStack, which stacks vertically.
      4. Final Answer:

        HStack with Spacer() between Text views for even spacing -> Option C
      5. Quick Check:

        Use Spacer() in HStack for even horizontal spacing [OK]
      Hint: Use Spacer() between views in HStack for even spacing [OK]
      Common Mistakes:
      • Using fixed spacing instead of flexible Spacer
      • Using VStack instead of HStack for horizontal layout
      • Relying on frame alignment without spacers
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard