Spacer and padding help you control space and distance between things on the screen. They make your app look neat and easy to use.
Spacer and padding in iOS Swift
Spacer() .padding(EdgeInsets(top: CGFloat, leading: CGFloat, bottom: CGFloat, trailing: CGFloat))
Spacer() creates flexible empty space that grows to fill available room.
padding() adds fixed space around a view. You can specify edges and size.
HStack {
Text("Left")
Spacer()
Text("Right")
}Text("Hello")
.padding()Text("Hello") .padding(.leading, 20)
VStack {
Text("Top")
Spacer()
Text("Bottom")
}This app screen shows a yellow box with "Hello, SwiftUI!" text padded all around by 30 points. Below it, a green tinted horizontal row has "Left" text on the left and "Right" text on the right with space in between. The whole screen has some padding so content does not touch edges.
import SwiftUI struct ContentView: View { var body: some View { VStack { Text("Hello, SwiftUI!") .padding(.all, 30) .background(Color.yellow) Spacer() HStack { Text("Left") Spacer() Text("Right") } .padding(.horizontal, 20) .background(Color.green.opacity(0.3)) } .padding() } } struct ContentView_Previews: PreviewProvider { static var previews: some View { ContentView() } }
Spacer only works inside stacks (HStack, VStack, ZStack) to push views apart.
Padding can be added to any view to create space inside its border.
Use padding and spacer together to create clean, balanced layouts.
Spacer creates flexible empty space inside stacks.
Padding adds fixed space around a view.
Use them to control layout spacing and improve app look and feel.
Practice
Spacer() do in a SwiftUI layout?Solution
Step 1: Understand Spacer's role
Spacer()is used to create flexible space that grows to fill available space inside stacks.Step 2: Compare with padding
Padding adds fixed space around views, but Spacer expands flexibly to push views apart.Final Answer:
It creates flexible empty space that expands to fill available space. -> Option DQuick Check:
Spacer = flexible space [OK]
- Confusing Spacer with padding
- Thinking Spacer adds fixed space
- Assuming Spacer changes colors
Solution
Step 1: Review padding syntax
SwiftUI allows padding with a simple number, with edges and length, or with EdgeInsets struct.Step 2: Check each option
Text("Hello").padding(20) uses padding(20) which adds 20 points all around.
Text("Hello").padding(.all, 20) uses padding(.all, 20) which also adds 20 points all around.
Text("Hello").padding(EdgeInsets(top: 20, leading: 20, bottom: 20, trailing: 20)) uses EdgeInsets with 20 points on all sides.
All are valid ways.Final Answer:
All of the above -> Option CQuick Check:
Multiple padding syntaxes work [OK]
- Using padding without parameters incorrectly
- Confusing padding edges syntax
- Missing EdgeInsets struct format
HStack {
Text("Left")
Spacer()
Text("Right")
}Solution
Step 1: Understand HStack and Spacer
HStack arranges views horizontally. Spacer expands to fill space between views.Step 2: Analyze positions
Text("Left") is placed first on the left.
Spacer pushes remaining space.
Text("Right") is pushed to the right edge.Final Answer:
"Left" text on the left, "Right" text pushed to the right edge. -> Option BQuick Check:
Spacer pushes views apart horizontally [OK]
- Thinking Spacer centers views
- Assuming texts overlap
- Ignoring Spacer effect in HStack
VStack {
Text("Top")
Spacer(10)
Text("Bottom")
}Solution
Step 1: Check Spacer usage
Spacer() does not accept any parameters; it has no initializer that takes arguments.Step 2: Validate other options
Text views can be inside VStack without ScrollView.
VStack works without frame.
Spacer and padding serve different purposes.Final Answer:
Spacer cannot take a parameter; it has no initializer with arguments. -> Option AQuick Check:
Spacer() has no parameters [OK]
- Trying to set Spacer size via parameters
- Confusing Spacer with padding
- Thinking VStack needs ScrollView always
VStack {
Text("Top")
Spacer()
Text("Middle")
Spacer()
Text("Bottom")
}.padding(30)
What is the effect of the .padding(30) modifier here?Solution
Step 1: Understand VStack with Spacer
Spacers divide available space evenly between Text views inside VStack.Step 2: Analyze padding effect
Padding(30) adds fixed space around VStack edges, reducing total space available for Spacer to expand.Final Answer:
It adds 30 points of space around the entire VStack, shrinking the available space for Spacer. -> Option AQuick Check:
Padding adds fixed outer space, Spacer fills remaining space [OK]
- Thinking padding adds space between views
- Assuming padding affects Spacer size directly
- Ignoring padding effect on layout edges
Ready to prove it?
Pass the test and this pattern moves unknown
