Launch Screen storyboard not displaying image
Interview Questions practice on Codemia
Over 8,000 real interview questions from top companies, searchable by company and role.
Introduction
If an image does not appear on the iOS launch screen, the problem is usually not in code, because launch screens do not run your code at all. The launch screen is a static storyboard snapshot, so missing images almost always come down to asset configuration, layout, target settings, or simulator caching.
Remember What a Launch Screen Can and Cannot Do
A launch screen storyboard is not a normal view controller.
It can:
- display static views and images
- use Auto Layout
- use asset catalog resources
It cannot:
- execute custom code
- fetch remote images
- run animations the way your main app can
- depend on runtime state
That means if you expected an image to appear because of code in viewDidLoad, it never will. Launch screen content must already be present in the storyboard and asset catalog.
Use an Asset Catalog Image
The safest setup is to add the image to Assets.xcassets and reference that asset from the UIImageView in the launch storyboard.
Things to verify:
- the asset name matches exactly
- the image asset is included in the app target
- the launch storyboard's image view points to that asset, not to a runtime-only image
If you renamed the asset but did not update the storyboard, the image view can stay empty with no obvious compile-time error.
Check the Launch Screen Setting Itself
Make sure the app target is actually using the storyboard you edited.
In Xcode, confirm that the target's launch-screen setting points to the expected storyboard name. If the app is configured to use a different launch screen file, you may be fixing the wrong storyboard entirely.
This is a very common mistake in projects with multiple targets, renamed storyboards, or old template files left behind.
Auto Layout Often Explains "It Works on One Device"
The image may exist but be off-screen or collapsed to zero size because of constraints.
A minimal full-width image view setup looks like this conceptually:
- pin leading and trailing constraints
- pin top or center vertically depending on design
- give the image view either explicit size or content-constrained sizing
- ensure no conflicting constraints compress it away
Launch screens are especially sensitive to layout issues because you do not get the same interactive debugging loop as with ordinary views.
A Simple Storyboard-Friendly Pattern
For a centered logo, a reliable approach is:
- one
UIImageView - fixed width and height constraints
- center horizontally and vertically
- image from asset catalog
- content mode set to aspect fit
That keeps the launch screen simple and predictable across devices.
If the image is large and intended as a background, use aspect fill carefully and test on several screen sizes to avoid unexpected cropping.
Cached Snapshots Can Mislead You
iOS and the simulator both cache launch behavior aggressively. Sometimes you fix the storyboard and still see the old screen.
Useful cleanup steps are:
- clean the build folder
- delete the app from the simulator or device
- rerun the app
- if needed, reset the simulator
This does not solve structural launch-screen bugs, but it does remove stale snapshots that make you think your change had no effect.
Keep the Launch Screen Static and Minimal
Because the launch screen is meant to visually bridge app startup, the best design is simple.
Avoid building a pseudo-splash-screen layout with lots of text, dynamic data, or conditional imagery. The closer the launch screen is to the first real screen of the app, the less noticeable the transition and the fewer surprises you will hit.
A centered brand mark plus background color is often enough.
Common Pitfalls
The biggest mistake is trying to use runtime logic to configure the launch screen. No controller code runs there.
Another mistake is referencing an image that is not in the asset catalog or not included in the app target.
A third issue is broken or ambiguous Auto Layout constraints that push the image off-screen or collapse its size.
Finally, cached simulator or device launch snapshots can make a fixed storyboard look still broken until the old app build is removed.
Summary
- Launch screens are static storyboards and do not run app code.
- Use images from the asset catalog and verify target membership.
- Confirm the app target points to the launch storyboard you actually edited.
- Check constraints if the image seems to work only on some devices.
- Clear simulator or device caches when testing launch-screen changes.
- Keep launch screens simple, static, and close in appearance to the app's first real UI.
Related reading
- Launching Google Maps Directions via an intent on Android
- Launching Google Maps Directions via an intent on Android
- LaunchScreen.xib not displaying my custom font
- Layout issues after updating to Xcode 8
- Launching multiple Kafka brokers fails - Configured brokerId doesn't match stored brokerId
- Launching with snapshot based volume fails
- ld framework not found Pods
- Leading zeros for Int in Swift
.png&w=3840&q=75)
Tackling System Design Interview Problems
A short course that equips you with the skills to approach system design interviews methodically.
Start the free courseTrack what you have practised
A free account saves your progress, solutions and study plan across every problem on Codemia.
Interview Questions practice on Codemia
Over 8,000 real interview questions from top companies, searchable by company and role.