Bird
Raised Fist0
iOS Swiftmobile~10 mins

Alignment and spacing in iOS Swift - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to center the text inside the VStack.

iOS Swift
VStack {
    Text("Hello, SwiftUI!")
        .frame(maxWidth: .infinity, alignment: [1])
}
Drag options to blanks, or click blank then click option'
A.leading
B.center
C.trailing
D.top
Attempts:
3 left
💡 Hint
Common Mistakes
Using .leading or .trailing which aligns text to the sides instead of center.
Using .top which is a vertical alignment, not horizontal.
2fill in blank
medium

Complete the code to add horizontal spacing of 20 points between elements in the HStack.

iOS Swift
HStack(spacing: [1]) {
    Text("One")
    Text("Two")
    Text("Three")
}
Drag options to blanks, or click blank then click option'
A10
B30
C20
D0
Attempts:
3 left
💡 Hint
Common Mistakes
Using zero spacing which removes space between elements.
Using too large spacing which might push elements off screen.
3fill in blank
hard

Fix the error in the code to add vertical padding of 15 points to the Text view.

iOS Swift
Text("Welcome")
    .padding([1], 15)
Drag options to blanks, or click blank then click option'
A.vertical
B.horizontal
C.all
D.leading
Attempts:
3 left
💡 Hint
Common Mistakes
Using .horizontal which adds padding left and right instead.
Using .leading which adds padding only on the left side.
4fill in blank
hard

Fill both blanks to create a VStack with spacing 10 and align its content to the leading edge.

iOS Swift
VStack(spacing: [1], alignment: [2]) {
    Text("Item 1")
    Text("Item 2")
}
Drag options to blanks, or click blank then click option'
A10
B.center
C.leading
D20
Attempts:
3 left
💡 Hint
Common Mistakes
Using .center alignment which centers content instead of left aligning.
Using spacing 20 which is larger than requested.
5fill in blank
hard

Fill all three blanks to create a Text view with padding 12, background color blue, and corner radius 8.

iOS Swift
Text("Button")
    .padding([1])
    .background(Color.[2])
    .clipShape(RoundedRectangle(cornerRadius: [3]))
Drag options to blanks, or click blank then click option'
A12
Bblue
C8
D10
Attempts:
3 left
💡 Hint
Common Mistakes
Using wrong padding value like 10 instead of 12.
Using a color name that does not exist.
Using corner radius too large or too small.

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