Guideline 4.0

Guideline 4.0 - Design: Crowded or Poor Layout

Medium RiskMedium DifficultyTypical Fix: 2-5 days0 Reports
Also known as:Too many buttons and controls crammed onto a single screenTap targets are too small or too close togetherNo visual hierarchy — all elements compete for equal attentionSettings screen lists dozens of options without grouping or sectionsForms with many fields on one screen instead of multi-step flow

Our Take

Apple found that one or more screens in your app are crowded or laid out in a way that makes it difficult to complete tasks. This typically means too many elements are packed onto a single screen, buttons are too small to tap accurately, spacing between elements is insufficient, or the visual hierarchy does not guide users through the intended flow. Apple expects apps to be simple, refined, and easy to use. One common cause is that your app was designed for iPhone, but reviewers tested on an iPad that compressed some of the elements or caused them to overlap. Because reviewers almost always test on an iPad, you should ensure that your app design works in iPad compatibility mode, which scales them up or displays them in a 1x/2x windowed mode.

Resolution Guide

01

**Audit the flagged screens** — Identify which screens Apple mentioned (check the rejection email or Resolution Center). Take screenshots and mark the problem areas.


02

**Increase tap target sizes** — Apple’s HIG recommends a minimum 44×44 point tap target. Use Accessibility Inspector or `.contentShape(Rectangle())` in SwiftUI to verify.


03

**Add whitespace** — Increase padding between elements. Use at least 16pt spacing between interactive elements and 8–12pt between related content blocks.


04

**Break up dense screens** — Split overloaded screens into multiple views or use a drill-down navigation pattern. For settings, group related options into sections using `List` with `Section` headers.


05

**Establish visual hierarchy** — Use font size, weight, and color to create clear levels: title → section header → body → caption. Not everything can be bold or large.


06

**Use progressive disclosure** — Show only the most important actions on the main screen. Move advanced options behind a “More” or “Advanced” section.


07

**Test with real users** — Watch someone use your app for the first time. If they struggle to find a button or accidentally tap the wrong thing, the layout needs work.


08

**Mention specific changes in reviewer notes** — When resubmitting, describe exactly which screens you improved and how.


Example Rejection Email

From:Apple App Review Team
Subject:Guideline 4.0 - Design: Crowded or Poor Layout
We noticed an issue in your app that contributes to a lower quality user experience than Apple users expect: - Screens were crowded or laid out in a way that made it difficult to complete tasks. Specifically, the main dashboard and settings screens present too many options in a single view, and interactive elements are positioned too closely together, making it difficult to tap accurately. Next Steps: We encourage you to simplify your app design and revise the layout of the mentioned screens to provide a better user experience.

Consider Appealing

Appeals are not recommended for this rejection — it is subjective but Apple reviewers rarely reverse layout judgments. Focus on fixing the flagged screens. If you genuinely believe the layout is clean, attach annotated screenshots showing tap target sizes and spacing measurements.

Generate Appeal

Before & After

Before — Rejected

// Crowded: all options on one flat screen with tiny spacing

VStack(spacing: 4) {

ForEach(allSettings) { setting in

Button(setting.title) { toggle(setting) }

.font(.caption)

.frame(height: 30)

}

}

After — Approved

// Organized: grouped settings with proper spacing and tap targets

List {

Section("Account") {

NavigationLink("Profile", destination: ProfileView())

NavigationLink("Notifications", destination: NotificationsView())

}

Section("Preferences") {

Toggle("Dark Mode", isOn: $darkMode)

Picker("Language", selection: $language) { ... }

}

Section("Advanced") {

NavigationLink("Data & Storage", destination: DataView())

NavigationLink("Privacy", destination: PrivacyView())

}

}

What changed: Replace a flat list of tiny buttons with a grouped List using Section headers. Each row is a full-width tappable area with standard 44pt height, and related settings are organized by category.

Community Solutions · 0

Sign in to share your solution.

More Guideline 4 (Design) rejections

View all Guideline 4 rejections