<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>SwiftUI List background &#8211; swiftyplace</title>
	<atom:link href="https://www.swiftyplace.com/blog/tag/swiftui-list-background/feed" rel="self" type="application/rss+xml" />
	<link>https://www.swiftyplace.com</link>
	<description>Learn how to build amazing apps with SwiftUI and Combine</description>
	<lastBuildDate>Tue, 28 Nov 2023 15:42:36 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://www.swiftyplace.com/wp-content/uploads/2023/08/cropped-logo-1-32x32.png</url>
	<title>SwiftUI List background &#8211; swiftyplace</title>
	<link>https://www.swiftyplace.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>How to Customise the SwiftUI List Style and Background Color</title>
		<link>https://www.swiftyplace.com/blog/customise-list-view-appearance-in-swiftui-examples-beyond-the-default-stylings?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=customise-list-view-appearance-in-swiftui-examples-beyond-the-default-stylings</link>
					<comments>https://www.swiftyplace.com/blog/customise-list-view-appearance-in-swiftui-examples-beyond-the-default-stylings#comments</comments>
		
		<dc:creator><![CDATA[Karin Prater]]></dc:creator>
		<pubDate>Wed, 01 Feb 2023 10:55:14 +0000</pubDate>
				<category><![CDATA[SwiftUI]]></category>
		<category><![CDATA[Swift UI list]]></category>
		<category><![CDATA[SwiftUI List]]></category>
		<category><![CDATA[SwiftUI List background]]></category>
		<category><![CDATA[SwiftUI ListStyling]]></category>
		<guid isPermaLink="false">https://swiftyplace.com/?p=1061</guid>

					<description><![CDATA[<p>In this tutorial, I will show you how to customize the styling of SwiftUI List: adjust the list background, colors, and edge insets.</p>
<p>The post <a rel="nofollow" href="https://www.swiftyplace.com/blog/customise-list-view-appearance-in-swiftui-examples-beyond-the-default-stylings">How to Customise the SwiftUI List Style and Background Color</a> appeared first on <a rel="nofollow" href="https://www.swiftyplace.com">swiftyplace</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">SwiftUI lists have a predefined appearance which depends on the platform and situation. A list in the NavigationView sidebar has a SidebarListStyle. Using one of the default stylings will give your app the same look as native Apple apps. But what if you want to add your own styling to the list?&nbsp;</p>



<p class="wp-block-paragraph">In this blog post, I will show you how to customize the SwiftUI List style: hide separators, change separator colors, adjust the list background color, and the background color of individual cells. I will also give you examples of how to change section headers and footers.</p>



<p class="wp-block-paragraph">By the end of this tutorial, you will be able to describe SwiftUI lists that don´t look unique and are super cool. If you are just getting started with List view, I suggest you check out my other blog post: <u><a href="https://www.swiftyplace.com/blog/swiftui-list-view-a-deep-dive-into-one-of-the-most-important-components-of-swiftui">SwiftUI List View: A Deep Dive into one of the most important components of SwiftUI.</a></u></p>



<p class="wp-block-paragraph"><u><a href="https://www.swiftyplace.com/f/project-files-for-swiftui-list-styling"><strong><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2b07.png" alt="⬇" class="wp-smiley" style="height: 1em; max-height: 1em;" /></strong></a></u> Download the project files&nbsp;<u><a href="https://school.swiftyplace.com/17130/files/63e290f1f287c_1675792625_liststylingproject.zip" target="_blank" rel="noopener">here</a></u></p>



<div style="height:47px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image"><img decoding="async" src="https://www.swiftyplace.com/wp-content/uploads/2023/08/list_style_ios_162.webp" alt="Examples for PlainListStyle, GroupedListStyle, and InsetGroupedListStyle for SwiftUI List Styling"/><figcaption class="wp-element-caption">SwiftUI list has 5 default styling options for iOS: PlainListStyle, GroupedListStyle, InsetGroupedListStyle, InsetListStyle and SidebarListStyle.</figcaption></figure>



<div style="height:31px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">Example Data Structure</h2>



<p class="wp-block-paragraph"><u><a href="https://www.swiftyplace.com/blog/swiftui-list-view-a-deep-dive-into-one-of-the-most-important-components-of-swiftui" data-type="link" data-id="https://www.swiftyplace.com/blog/swiftui-list-view-a-deep-dive-into-one-of-the-most-important-components-of-swiftui">In a previous post about SwiftUI List view,</a></u> I used Food items, which I want to further extend here. I added a color variable that we will use to style our lists.</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono-NL.ttf" style="font-size:1rem;font-family:Code-Pro-JetBrains-Mono-NL,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.5rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" data-code="import SwiftUI
struct Food: Identifiable, Hashable {
    var name: String
    var icon: String
    var isFavorite: Bool
    var color: Color
    let id = UUID()

    static func goodExamples() -&gt; [Food] {
        return [Food(name: &quot;Apple&quot;, icon: &quot;&#x1f34e;&quot;, isFavorite: true, color: .red),
                Food(name: &quot;Orange&quot;, icon: &quot;&#x1f34a;&quot;, isFavorite: false, color: .orange),
                Food(name: &quot;Banana&quot;, icon: &quot;&#x1f34c;&quot;, isFavorite: false, color: .yellow)
        ]
    }

    static func unhealthyExamples() -&gt; [Food] {
        [Food(name: &quot;Pizza&quot;, icon: &quot;&#x1f355;&quot;, isFavorite: false, color: .blue),
         Food(name: &quot;Burger&quot;, icon: &quot;&#x1f354;&quot;, isFavorite: false, color: .green)]
    }
}" style="color:#f6f6f4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula-soft" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #F286C4">import</span><span style="color: #F6F6F4"> </span><span style="color: #97E1F1; font-style: italic">SwiftUI</span></span>
<span class="line"><span style="color: #F286C4">struct</span><span style="color: #F6F6F4"> </span><span style="color: #97E1F1; font-style: italic">Food</span><span style="color: #F6F6F4">: Identifiable, Hashable {</span></span>
<span class="line"><span style="color: #F6F6F4">    </span><span style="color: #F286C4">var</span><span style="color: #F6F6F4"> name: </span><span style="color: #97E1F1; font-style: italic">String</span></span>
<span class="line"><span style="color: #F6F6F4">    </span><span style="color: #F286C4">var</span><span style="color: #F6F6F4"> icon: </span><span style="color: #97E1F1; font-style: italic">String</span></span>
<span class="line"><span style="color: #F6F6F4">    </span><span style="color: #F286C4">var</span><span style="color: #F6F6F4"> isFavorite: </span><span style="color: #97E1F1; font-style: italic">Bool</span></span>
<span class="line"><span style="color: #F6F6F4">    </span><span style="color: #F286C4">var</span><span style="color: #F6F6F4"> color: Color</span></span>
<span class="line"><span style="color: #F6F6F4">    </span><span style="color: #F286C4">let</span><span style="color: #F6F6F4"> id </span><span style="color: #F286C4">=</span><span style="color: #F6F6F4"> </span><span style="color: #97E1F1">UUID</span><span style="color: #F6F6F4">()</span></span>
<span class="line"></span>
<span class="line"><span style="color: #F6F6F4">    </span><span style="color: #F286C4">static</span><span style="color: #F6F6F4"> </span><span style="color: #F286C4">func</span><span style="color: #F6F6F4"> </span><span style="color: #62E884">goodExamples</span><span style="color: #F6F6F4">() </span><span style="color: #F286C4">-&gt;</span><span style="color: #F6F6F4"> [Food] {</span></span>
<span class="line"><span style="color: #F6F6F4">        </span><span style="color: #F286C4">return</span><span style="color: #F6F6F4"> [</span><span style="color: #97E1F1">Food</span><span style="color: #F6F6F4">(</span><span style="color: #97E1F1">name</span><span style="color: #F6F6F4">: </span><span style="color: #DEE492">&quot;</span><span style="color: #E7EE98">Apple</span><span style="color: #DEE492">&quot;</span><span style="color: #F6F6F4">, </span><span style="color: #97E1F1">icon</span><span style="color: #F6F6F4">: </span><span style="color: #DEE492">&quot;</span><span style="color: #E7EE98">&#x1f34e;</span><span style="color: #DEE492">&quot;</span><span style="color: #F6F6F4">, </span><span style="color: #97E1F1">isFavorite</span><span style="color: #F6F6F4">: </span><span style="color: #BF9EEE">true</span><span style="color: #F6F6F4">, </span><span style="color: #97E1F1">color</span><span style="color: #F6F6F4">: .red),</span></span>
<span class="line"><span style="color: #F6F6F4">                </span><span style="color: #97E1F1">Food</span><span style="color: #F6F6F4">(</span><span style="color: #97E1F1">name</span><span style="color: #F6F6F4">: </span><span style="color: #DEE492">&quot;</span><span style="color: #E7EE98">Orange</span><span style="color: #DEE492">&quot;</span><span style="color: #F6F6F4">, </span><span style="color: #97E1F1">icon</span><span style="color: #F6F6F4">: </span><span style="color: #DEE492">&quot;</span><span style="color: #E7EE98">&#x1f34a;</span><span style="color: #DEE492">&quot;</span><span style="color: #F6F6F4">, </span><span style="color: #97E1F1">isFavorite</span><span style="color: #F6F6F4">: </span><span style="color: #BF9EEE">false</span><span style="color: #F6F6F4">, </span><span style="color: #97E1F1">color</span><span style="color: #F6F6F4">: .orange),</span></span>
<span class="line"><span style="color: #F6F6F4">                </span><span style="color: #97E1F1">Food</span><span style="color: #F6F6F4">(</span><span style="color: #97E1F1">name</span><span style="color: #F6F6F4">: </span><span style="color: #DEE492">&quot;</span><span style="color: #E7EE98">Banana</span><span style="color: #DEE492">&quot;</span><span style="color: #F6F6F4">, </span><span style="color: #97E1F1">icon</span><span style="color: #F6F6F4">: </span><span style="color: #DEE492">&quot;</span><span style="color: #E7EE98">&#x1f34c;</span><span style="color: #DEE492">&quot;</span><span style="color: #F6F6F4">, </span><span style="color: #97E1F1">isFavorite</span><span style="color: #F6F6F4">: </span><span style="color: #BF9EEE">false</span><span style="color: #F6F6F4">, </span><span style="color: #97E1F1">color</span><span style="color: #F6F6F4">: .yellow)</span></span>
<span class="line"><span style="color: #F6F6F4">        ]</span></span>
<span class="line"><span style="color: #F6F6F4">    }</span></span>
<span class="line"></span>
<span class="line"><span style="color: #F6F6F4">    </span><span style="color: #F286C4">static</span><span style="color: #F6F6F4"> </span><span style="color: #F286C4">func</span><span style="color: #F6F6F4"> </span><span style="color: #62E884">unhealthyExamples</span><span style="color: #F6F6F4">() </span><span style="color: #F286C4">-&gt;</span><span style="color: #F6F6F4"> [Food] {</span></span>
<span class="line"><span style="color: #F6F6F4">        [</span><span style="color: #97E1F1">Food</span><span style="color: #F6F6F4">(</span><span style="color: #97E1F1">name</span><span style="color: #F6F6F4">: </span><span style="color: #DEE492">&quot;</span><span style="color: #E7EE98">Pizza</span><span style="color: #DEE492">&quot;</span><span style="color: #F6F6F4">, </span><span style="color: #97E1F1">icon</span><span style="color: #F6F6F4">: </span><span style="color: #DEE492">&quot;</span><span style="color: #E7EE98">&#x1f355;</span><span style="color: #DEE492">&quot;</span><span style="color: #F6F6F4">, </span><span style="color: #97E1F1">isFavorite</span><span style="color: #F6F6F4">: </span><span style="color: #BF9EEE">false</span><span style="color: #F6F6F4">, </span><span style="color: #97E1F1">color</span><span style="color: #F6F6F4">: .blue),</span></span>
<span class="line"><span style="color: #F6F6F4">         </span><span style="color: #97E1F1">Food</span><span style="color: #F6F6F4">(</span><span style="color: #97E1F1">name</span><span style="color: #F6F6F4">: </span><span style="color: #DEE492">&quot;</span><span style="color: #E7EE98">Burger</span><span style="color: #DEE492">&quot;</span><span style="color: #F6F6F4">, </span><span style="color: #97E1F1">icon</span><span style="color: #F6F6F4">: </span><span style="color: #DEE492">&quot;</span><span style="color: #E7EE98">&#x1f354;</span><span style="color: #DEE492">&quot;</span><span style="color: #F6F6F4">, </span><span style="color: #97E1F1">isFavorite</span><span style="color: #F6F6F4">: </span><span style="color: #BF9EEE">false</span><span style="color: #F6F6F4">, </span><span style="color: #97E1F1">color</span><span style="color: #F6F6F4">: .green)]</span></span>
<span class="line"><span style="color: #F6F6F4">    }</span></span>
<span class="line"><span style="color: #F6F6F4">}</span></span></code></pre></div>



<div style="height:57px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">Using a Custom Cell</h2>



<p class="wp-block-paragraph">We can write a custom cell to make it faster to write different implementations for List. The subview shows the food`s icon, name, and icon for the isFavorite property.</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono-NL.ttf" style="font-size:1rem;font-family:Code-Pro-JetBrains-Mono-NL,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.5rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" data-code="struct FoodRow: View {
    let food: Food

    var body: some View {
        HStack {
            Text(food.icon)
                .font(.title)
            Text(food.name)
            Spacer()
            Image(systemName: food.isFavorite ? &quot;heart.fill&quot; : &quot;heart&quot;)
        }
    }
}" style="color:#f6f6f4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula-soft" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #F286C4">struct</span><span style="color: #F6F6F4"> </span><span style="color: #97E1F1; font-style: italic">FoodRow</span><span style="color: #F6F6F4">: View {</span></span>
<span class="line"><span style="color: #F6F6F4">    </span><span style="color: #F286C4">let</span><span style="color: #F6F6F4"> food: Food</span></span>
<span class="line"></span>
<span class="line"><span style="color: #F6F6F4">    </span><span style="color: #F286C4">var</span><span style="color: #F6F6F4"> body: </span><span style="color: #F286C4">some</span><span style="color: #F6F6F4"> View {</span></span>
<span class="line"><span style="color: #F6F6F4">        HStack {</span></span>
<span class="line"><span style="color: #F6F6F4">            </span><span style="color: #97E1F1">Text</span><span style="color: #F6F6F4">(food.icon)</span></span>
<span class="line"><span style="color: #F6F6F4">                .</span><span style="color: #97E1F1">font</span><span style="color: #F6F6F4">(.title)</span></span>
<span class="line"><span style="color: #F6F6F4">            </span><span style="color: #97E1F1">Text</span><span style="color: #F6F6F4">(food.name)</span></span>
<span class="line"><span style="color: #F6F6F4">            </span><span style="color: #97E1F1">Spacer</span><span style="color: #F6F6F4">()</span></span>
<span class="line"><span style="color: #F6F6F4">            </span><span style="color: #97E1F1">Image</span><span style="color: #F6F6F4">(</span><span style="color: #97E1F1">systemName</span><span style="color: #F6F6F4">: food.isFavorite </span><span style="color: #F286C4">?</span><span style="color: #F6F6F4"> </span><span style="color: #DEE492">&quot;</span><span style="color: #E7EE98">heart.fill</span><span style="color: #DEE492">&quot;</span><span style="color: #F6F6F4"> </span><span style="color: #F286C4">:</span><span style="color: #F6F6F4"> </span><span style="color: #DEE492">&quot;</span><span style="color: #E7EE98">heart</span><span style="color: #DEE492">&quot;</span><span style="color: #F6F6F4">)</span></span>
<span class="line"><span style="color: #F6F6F4">        }</span></span>
<span class="line"><span style="color: #F6F6F4">    }</span></span>
<span class="line"><span style="color: #F6F6F4">}</span></span></code></pre></div>



<div style="height:57px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">List Separators</h2>



<p class="wp-block-paragraph">When you use PlainListStyle, GroupedListStyle, or InsetListStyle, List shows separators between rows and sections. A List separator is not the same as a Divider. If you try to use a Divider view, it will be treated as a list row and additional spacing and styling are added. It is much better to customize the default List separators instead.</p>



<div style="height:16px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">How do I hide line separators?</h3>



<p class="wp-block-paragraph">You can remove the List row separators with a new feature for iOS 15 and macOS 13 which is listRowSeparator<strong>.</strong> You can attach this view modifier to ForEach, a section, or directly to the individual list cell.</p>



<p class="wp-block-paragraph">Each section also gets separators added after the section. You can hide section separators with the listSectionSeparator modifier:</p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono-NL.ttf" style="font-size:1rem;font-family:Code-Pro-JetBrains-Mono-NL,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#f6f6f4;--cbp-line-number-width:calc(2 * 0.6 * 1rem);--cbp-line-highlight-color:rgba(251, 251, 239, 0.2);line-height:1.5rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" data-code="struct ContentView: View {
    @State private var unhealthFoods = Food.unhealthyExamples()

    var body: some View {
        List {
            Section {
                ForEach(unhealthFoods) { food in
                    FoodRow(food: food)
                }
                .listRowSeparator(.hidden)
            } header: {
                Text(&quot;Unhealthy Foods&quot;)
            } footer: {
                Text(&quot;You should try to avoid them and only eat them occasionally.&quot;)
            }
            .listSectionSeparator(.hidden)
        }
    }
}" style="color:#f6f6f4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula-soft" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #F286C4">struct</span><span style="color: #F6F6F4"> </span><span style="color: #97E1F1; font-style: italic">ContentView</span><span style="color: #F6F6F4">: View {</span></span>
<span class="line"><span style="color: #F6F6F4">    </span><span style="color: #F286C4">@State</span><span style="color: #F6F6F4"> </span><span style="color: #F286C4">private</span><span style="color: #F6F6F4"> </span><span style="color: #F286C4">var</span><span style="color: #F6F6F4"> unhealthFoods </span><span style="color: #F286C4">=</span><span style="color: #F6F6F4"> Food.</span><span style="color: #97E1F1">unhealthyExamples</span><span style="color: #F6F6F4">()</span></span>
<span class="line"></span>
<span class="line"><span style="color: #F6F6F4">    </span><span style="color: #F286C4">var</span><span style="color: #F6F6F4"> body: </span><span style="color: #F286C4">some</span><span style="color: #F6F6F4"> View {</span></span>
<span class="line"><span style="color: #F6F6F4">        List {</span></span>
<span class="line"><span style="color: #F6F6F4">            Section {</span></span>
<span class="line"><span style="color: #F6F6F4">                </span><span style="color: #97E1F1">ForEach</span><span style="color: #F6F6F4">(unhealthFoods) { food </span><span style="color: #F286C4">in</span></span>
<span class="line"><span style="color: #F6F6F4">                    </span><span style="color: #97E1F1">FoodRow</span><span style="color: #F6F6F4">(</span><span style="color: #97E1F1">food</span><span style="color: #F6F6F4">: food)</span></span>
<span class="line"><span style="color: #F6F6F4">                }</span></span>
<span class="line cbp-line-highlight"><span style="color: #F6F6F4">                .</span><span style="color: #97E1F1">listRowSeparator</span><span style="color: #F6F6F4">(.hidden)</span></span>
<span class="line"><span style="color: #F6F6F4">            } header</span><span style="color: #F286C4">:</span><span style="color: #F6F6F4"> {</span></span>
<span class="line"><span style="color: #F6F6F4">                </span><span style="color: #97E1F1">Text</span><span style="color: #F6F6F4">(</span><span style="color: #DEE492">&quot;</span><span style="color: #E7EE98">Unhealthy Foods</span><span style="color: #DEE492">&quot;</span><span style="color: #F6F6F4">)</span></span>
<span class="line"><span style="color: #F6F6F4">            } footer</span><span style="color: #F286C4">:</span><span style="color: #F6F6F4"> {</span></span>
<span class="line"><span style="color: #F6F6F4">                </span><span style="color: #97E1F1">Text</span><span style="color: #F6F6F4">(</span><span style="color: #DEE492">&quot;</span><span style="color: #E7EE98">You should try to avoid them and only eat them occasionally.</span><span style="color: #DEE492">&quot;</span><span style="color: #F6F6F4">)</span></span>
<span class="line"><span style="color: #F6F6F4">            }</span></span>
<span class="line cbp-line-highlight"><span style="color: #F6F6F4">            .</span><span style="color: #97E1F1">listSectionSeparator</span><span style="color: #F6F6F4">(.hidden)</span></span>
<span class="line"><span style="color: #F6F6F4">        }</span></span>
<span class="line"><span style="color: #F6F6F4">    }</span></span>
<span class="line"><span style="color: #F6F6F4">}</span></span></code></pre></div>



<div style="height:28px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="gb-container gb-container-c5dedc2e">
<div class="gb-container gb-container-f7a433c7">
<div class="gb-container gb-container-7a8dc7a3">

<figure class="gb-block-image gb-block-image-f04fbbad"><a href="https://www.swiftyplace.com/free-swiftui-layout-cookbook" target="_blank" rel="noopener noreferrer"><img fetchpriority="high" decoding="async" width="640" height="500" class="gb-image gb-image-f04fbbad" src="http://www.swiftyplace.com/wp-content/uploads/2024/01/swiftui_roadmap_preview.webp" alt="swiftui roadmap " title="swiftui_roadmap_preview" srcset="https://www.swiftyplace.com/wp-content/uploads/2024/01/swiftui_roadmap_preview.webp 640w, https://www.swiftyplace.com/wp-content/uploads/2024/01/swiftui_roadmap_preview-300x234.webp 300w" sizes="(max-width: 640px) 100vw, 640px" /></a></figure>

</div>

<div class="gb-container gb-container-98352fe6">

<h2 class="gb-headline gb-headline-4aacd94c gb-headline-text">Feeling Lost in SwiftUI?</h2>



<p class="gb-headline gb-headline-5e6c4f85 gb-headline-text">This SwiftUI roadmap shows you what to learn next.</p>



<ul style="margin-top:0;margin-bottom:0;font-size:18px" class="wp-block-list">
<li>Key concepts at a glance</li>



<li>Spot your knowledge gaps</li>



<li>Guide your learning path</li>
</ul>


<div class="gb-container gb-container-34a8ad02">

<a class="gb-button gb-button-63e90e76 gb-button-blue" href="https://school.swiftyplace.com/f/swiftui-roadmap" target="_blank" rel="noopener noreferrer"><span class="gb-button-text">Get the FREE PDF</span><span class="gb-icon"><svg aria-hidden="true" role="img" height="1em" width="1em" viewBox="0 0 256 512" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z"></path></svg></span></a>

</div>


<p class="gb-headline gb-headline-7ef80e86 gb-headline-text">Ideal for beginners and self-learners.</p>

</div>
</div>
</div>


<div style="height:62px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">How to adjust List row separator color?</h3>



<p class="wp-block-paragraph">You can change the color of the List separators with the <strong>l</strong>istRowSeparatorTint modifier. If it is attached to ForEach all separators inside are changed.<strong> L</strong>istRowSeparatorTint has an argument for the edge, which has options for all, top and bottom. It is also possible to change the separator color for individual rows by directly applying listRowSeparatorTint to the row. In our example, I used the food`s color property to apply different separator colors (first section in the following example).</p>



<p class="wp-block-paragraph">If you add listRowSeparatorTint to a section, also the section separator gets the same tint color. If you only want to change the section separator use listSectionSeparatorTint.</p>


<div class="wp-block-image">
<figure class="alignright is-resized"><img decoding="async" src="https://www.swiftyplace.com/wp-content/uploads/2023/08/list-separator-color-611x1024.jpg" alt="SwiftUI list style example with separator tint color" style="width:363px;height:608px"/></figure>
</div>


<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono-NL.ttf" style="font-size:1rem;font-family:Code-Pro-JetBrains-Mono-NL,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#f6f6f4;--cbp-line-number-width:calc(2 * 0.6 * 1rem);--cbp-line-highlight-color:rgba(251, 251, 239, 0.2);line-height:1.5rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" data-code="struct ContentView: View {
    @State private var healthFoods = Food.goodExamples()
    @State private var unhealthFoods = Food.unhealthyExamples()
    var body: some View {
        List {
            Section {
                ForEach(healthFoods) { food in
                   FoodRow(food: food)
                        .listRowSeparatorTint(food.color)
                }
            } header: {
                Text(&quot;Healthy Foods&quot;)
            } footer: {
                Text(&quot;You should try to eat them regularly.&quot;)
            }

            Section {
                ForEach(unhealthFoods) { food in
                   FoodRow(food: food)
                }
            } header: {
                Text(&quot;Unhealthy Foods&quot;)
            } footer: {
                Text(&quot;You should try to avoid them and only eat them occasionally.&quot;)
            }
            .listRowSeparatorTint(.green, edges: .all)

            Section {
                ForEach(unhealthFoods) { food in
                   FoodRow(food: food)
                }
                .listRowSeparatorTint(.blue, edges: .top)
            } header: {
                Text(&quot;Unhealthy Foods&quot;)
            } footer: {
                Text(&quot;You should try to avoid them and only eat them occasionally.&quot;)
            }
            .listSectionSeparatorTint(.red)
        }
        .listStyle(.inset)
    }
}" style="color:#f6f6f4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula-soft" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #F286C4">struct</span><span style="color: #F6F6F4"> </span><span style="color: #97E1F1; font-style: italic">ContentView</span><span style="color: #F6F6F4">: View {</span></span>
<span class="line"><span style="color: #F6F6F4">    </span><span style="color: #F286C4">@State</span><span style="color: #F6F6F4"> </span><span style="color: #F286C4">private</span><span style="color: #F6F6F4"> </span><span style="color: #F286C4">var</span><span style="color: #F6F6F4"> healthFoods </span><span style="color: #F286C4">=</span><span style="color: #F6F6F4"> Food.</span><span style="color: #97E1F1">goodExamples</span><span style="color: #F6F6F4">()</span></span>
<span class="line"><span style="color: #F6F6F4">    </span><span style="color: #F286C4">@State</span><span style="color: #F6F6F4"> </span><span style="color: #F286C4">private</span><span style="color: #F6F6F4"> </span><span style="color: #F286C4">var</span><span style="color: #F6F6F4"> unhealthFoods </span><span style="color: #F286C4">=</span><span style="color: #F6F6F4"> Food.</span><span style="color: #97E1F1">unhealthyExamples</span><span style="color: #F6F6F4">()</span></span>
<span class="line"><span style="color: #F6F6F4">    </span><span style="color: #F286C4">var</span><span style="color: #F6F6F4"> body: </span><span style="color: #F286C4">some</span><span style="color: #F6F6F4"> View {</span></span>
<span class="line"><span style="color: #F6F6F4">        List {</span></span>
<span class="line"><span style="color: #F6F6F4">            Section {</span></span>
<span class="line"><span style="color: #F6F6F4">                </span><span style="color: #97E1F1">ForEach</span><span style="color: #F6F6F4">(healthFoods) { food </span><span style="color: #F286C4">in</span></span>
<span class="line"><span style="color: #F6F6F4">                   </span><span style="color: #97E1F1">FoodRow</span><span style="color: #F6F6F4">(</span><span style="color: #97E1F1">food</span><span style="color: #F6F6F4">: food)</span></span>
<span class="line cbp-line-highlight"><span style="color: #F6F6F4">                        .</span><span style="color: #97E1F1">listRowSeparatorTint</span><span style="color: #F6F6F4">(food.</span><span style="color: #BF9EEE">color</span><span style="color: #F6F6F4">)</span></span>
<span class="line"><span style="color: #F6F6F4">                }</span></span>
<span class="line"><span style="color: #F6F6F4">            } header</span><span style="color: #F286C4">:</span><span style="color: #F6F6F4"> {</span></span>
<span class="line"><span style="color: #F6F6F4">                </span><span style="color: #97E1F1">Text</span><span style="color: #F6F6F4">(</span><span style="color: #DEE492">&quot;</span><span style="color: #E7EE98">Healthy Foods</span><span style="color: #DEE492">&quot;</span><span style="color: #F6F6F4">)</span></span>
<span class="line"><span style="color: #F6F6F4">            } footer</span><span style="color: #F286C4">:</span><span style="color: #F6F6F4"> {</span></span>
<span class="line"><span style="color: #F6F6F4">                </span><span style="color: #97E1F1">Text</span><span style="color: #F6F6F4">(</span><span style="color: #DEE492">&quot;</span><span style="color: #E7EE98">You should try to eat them regularly.</span><span style="color: #DEE492">&quot;</span><span style="color: #F6F6F4">)</span></span>
<span class="line"><span style="color: #F6F6F4">            }</span></span>
<span class="line"></span>
<span class="line"><span style="color: #F6F6F4">            Section {</span></span>
<span class="line"><span style="color: #F6F6F4">                </span><span style="color: #97E1F1">ForEach</span><span style="color: #F6F6F4">(unhealthFoods) { food </span><span style="color: #F286C4">in</span></span>
<span class="line"><span style="color: #F6F6F4">                   </span><span style="color: #97E1F1">FoodRow</span><span style="color: #F6F6F4">(</span><span style="color: #97E1F1">food</span><span style="color: #F6F6F4">: food)</span></span>
<span class="line"><span style="color: #F6F6F4">                }</span></span>
<span class="line"><span style="color: #F6F6F4">            } header</span><span style="color: #F286C4">:</span><span style="color: #F6F6F4"> {</span></span>
<span class="line"><span style="color: #F6F6F4">                </span><span style="color: #97E1F1">Text</span><span style="color: #F6F6F4">(</span><span style="color: #DEE492">&quot;</span><span style="color: #E7EE98">Unhealthy Foods</span><span style="color: #DEE492">&quot;</span><span style="color: #F6F6F4">)</span></span>
<span class="line"><span style="color: #F6F6F4">            } footer</span><span style="color: #F286C4">:</span><span style="color: #F6F6F4"> {</span></span>
<span class="line"><span style="color: #F6F6F4">                </span><span style="color: #97E1F1">Text</span><span style="color: #F6F6F4">(</span><span style="color: #DEE492">&quot;</span><span style="color: #E7EE98">You should try to avoid them and only eat them occasionally.</span><span style="color: #DEE492">&quot;</span><span style="color: #F6F6F4">)</span></span>
<span class="line"><span style="color: #F6F6F4">            }</span></span>
<span class="line cbp-line-highlight"><span style="color: #F6F6F4">            .</span><span style="color: #97E1F1">listRowSeparatorTint</span><span style="color: #F6F6F4">(.green, </span><span style="color: #97E1F1">edges</span><span style="color: #F6F6F4">: .all)</span></span>
<span class="line"></span>
<span class="line"><span style="color: #F6F6F4">            Section {</span></span>
<span class="line"><span style="color: #F6F6F4">                </span><span style="color: #97E1F1">ForEach</span><span style="color: #F6F6F4">(unhealthFoods) { food </span><span style="color: #F286C4">in</span></span>
<span class="line"><span style="color: #F6F6F4">                   </span><span style="color: #97E1F1">FoodRow</span><span style="color: #F6F6F4">(</span><span style="color: #97E1F1">food</span><span style="color: #F6F6F4">: food)</span></span>
<span class="line"><span style="color: #F6F6F4">                }</span></span>
<span class="line cbp-line-highlight"><span style="color: #F6F6F4">                .</span><span style="color: #97E1F1">listRowSeparatorTint</span><span style="color: #F6F6F4">(.blue, </span><span style="color: #97E1F1">edges</span><span style="color: #F6F6F4">: .top)</span></span>
<span class="line"><span style="color: #F6F6F4">            } header</span><span style="color: #F286C4">:</span><span style="color: #F6F6F4"> {</span></span>
<span class="line"><span style="color: #F6F6F4">                </span><span style="color: #97E1F1">Text</span><span style="color: #F6F6F4">(</span><span style="color: #DEE492">&quot;</span><span style="color: #E7EE98">Unhealthy Foods</span><span style="color: #DEE492">&quot;</span><span style="color: #F6F6F4">)</span></span>
<span class="line"><span style="color: #F6F6F4">            } footer</span><span style="color: #F286C4">:</span><span style="color: #F6F6F4"> {</span></span>
<span class="line"><span style="color: #F6F6F4">                </span><span style="color: #97E1F1">Text</span><span style="color: #F6F6F4">(</span><span style="color: #DEE492">&quot;</span><span style="color: #E7EE98">You should try to avoid them and only eat them occasionally.</span><span style="color: #DEE492">&quot;</span><span style="color: #F6F6F4">)</span></span>
<span class="line"><span style="color: #F6F6F4">            }</span></span>
<span class="line cbp-line-highlight"><span style="color: #F6F6F4">            .</span><span style="color: #97E1F1">listSectionSeparatorTint</span><span style="color: #F6F6F4">(.red)</span></span>
<span class="line"><span style="color: #F6F6F4">        }</span></span>
<span class="line"><span style="color: #F6F6F4">        .</span><span style="color: #97E1F1">listStyle</span><span style="color: #F6F6F4">(.inset)</span></span>
<span class="line"><span style="color: #F6F6F4">    }</span></span>
<span class="line"><span style="color: #F6F6F4">}</span></span></code></pre></div>



<div style="height:47px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">List Row Size and Insets</h2>



<p class="wp-block-paragraph">SwiftUI sets default values for the height of the rows and section headers. But also for the list insets, which depend on the ListStyling. GroupedInsetListStyling will have more inset than PlainListStyling. You can override these behaviours with newer features that are backward compatible with iOS 13 and macOS 10.15.</p>



<div style="height:47px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">How do I change the List row height?</h3>



<p class="wp-block-paragraph">List uses the default row height, that is passed in the environment. The environment value is called <code>defaultMinListRowHeight</code>. You can set your own value by overriding the environment value:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono-NL.ttf" style="font-size:1rem;font-family:Code-Pro-JetBrains-Mono-NL,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.5rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" data-code="List {
   ...
}
.environment(\.defaultMinListRowHeight, 70)" style="color:#f6f6f4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula-soft" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #F6F6F4">List {</span></span>
<span class="line"><span style="color: #F6F6F4">   </span><span style="color: #F286C4">...</span></span>
<span class="line"><span style="color: #F6F6F4">}</span></span>
<span class="line"><span style="color: #F6F6F4">.</span><span style="color: #97E1F1">environment</span><span style="color: #F6F6F4">(\.defaultMinListRowHeight, </span><span style="color: #BF9EEE">70</span><span style="color: #F6F6F4">)</span></span></code></pre></div>



<div style="height:37px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="wp-block-paragraph">Similarly, you can change the height of a section header with another environment property, which is <code>defaultMinListHeaderHeight</code>:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono-NL.ttf" style="font-size:1rem;font-family:Code-Pro-JetBrains-Mono-NL,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.5rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" data-code="List {
    Section {
        ....
    } header: {
        Text(&quot;Good Foods&quot;)
    }
}
.environment(\.defaultMinListRowHeight, 70)" style="color:#f6f6f4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula-soft" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #F6F6F4">List {</span></span>
<span class="line"><span style="color: #F6F6F4">    Section {</span></span>
<span class="line"><span style="color: #F6F6F4">        </span><span style="color: #F286C4">....</span></span>
<span class="line"><span style="color: #F6F6F4">    } header</span><span style="color: #F286C4">:</span><span style="color: #F6F6F4"> {</span></span>
<span class="line"><span style="color: #F6F6F4">        </span><span style="color: #97E1F1">Text</span><span style="color: #F6F6F4">(</span><span style="color: #DEE492">&quot;</span><span style="color: #E7EE98">Good Foods</span><span style="color: #DEE492">&quot;</span><span style="color: #F6F6F4">)</span></span>
<span class="line"><span style="color: #F6F6F4">    }</span></span>
<span class="line"><span style="color: #F6F6F4">}</span></span>
<span class="line"><span style="color: #F6F6F4">.</span><span style="color: #97E1F1">environment</span><span style="color: #F6F6F4">(\.defaultMinListRowHeight, </span><span style="color: #BF9EEE">70</span><span style="color: #F6F6F4">)</span></span></code></pre></div>


<div class="wp-block-image">
<figure class="aligncenter is-resized"><img decoding="async" src="https://www.swiftyplace.com/wp-content/uploads/2023/08/list_row_height.webp" alt="an example for changing the row height inside a SwiftUI List" style="width:708px;height:590px"/></figure>
</div>


<div style="height:66px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">How do I adjust List row insets?</h3>



<p class="wp-block-paragraph">We now have a listRowInsets modifier, where you can specify EdgeInsets. For rows you can change the leading and trailing insets. For sections, you can also set the top and bottom insets. If you attach listRowInsets to a section, the rows, section header, and footer are changed:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono-NL.ttf" style="font-size:1rem;font-family:Code-Pro-JetBrains-Mono-NL,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.5rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" data-code="ForEach(unhealthFoods) { food in
         FoodRow(food: food)
}
.listRowInsets(EdgeInsets.init(top: 0, leading: 50, bottom: 0, trailing: 50))" style="color:#f6f6f4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula-soft" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #97E1F1">ForEach</span><span style="color: #F6F6F4">(unhealthFoods) { food </span><span style="color: #F286C4">in</span></span>
<span class="line"><span style="color: #F6F6F4">         </span><span style="color: #97E1F1">FoodRow</span><span style="color: #F6F6F4">(</span><span style="color: #97E1F1">food</span><span style="color: #F6F6F4">: food)</span></span>
<span class="line"><span style="color: #F6F6F4">}</span></span>
<span class="line"><span style="color: #F6F6F4">.</span><span style="color: #97E1F1">listRowInsets</span><span style="color: #F6F6F4">(EdgeInsets.</span><span style="color: #F286C4">init</span><span style="color: #F6F6F4">(</span><span style="color: #97E1F1">top</span><span style="color: #F6F6F4">: </span><span style="color: #BF9EEE">0</span><span style="color: #F6F6F4">, </span><span style="color: #97E1F1">leading</span><span style="color: #F6F6F4">: </span><span style="color: #BF9EEE">50</span><span style="color: #F6F6F4">, </span><span style="color: #97E1F1">bottom</span><span style="color: #F6F6F4">: </span><span style="color: #BF9EEE">0</span><span style="color: #F6F6F4">, </span><span style="color: #97E1F1">trailing</span><span style="color: #F6F6F4">: </span><span style="color: #BF9EEE">50</span><span style="color: #F6F6F4">))</span></span></code></pre></div>



<div style="height:22px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="wp-block-paragraph">If you want to remove all edge insets you can set <code>.listRowInsets(.none)</code><strong>.</strong></p>


<div class="wp-block-image">
<figure class="alignright is-resized"><img decoding="async" src="https://www.swiftyplace.com/wp-content/uploads/2023/08/list-edge-insets-613x1024.png" alt="SwiftUI list style example with list row insets" style="width:360px;height:602px"/></figure>
</div>


<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono-NL.ttf" style="font-size:1rem;font-family:Code-Pro-JetBrains-Mono-NL,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-highlight-color:rgba(251, 251, 239, 0.2);line-height:1.5rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" data-code="struct ContentView: View {
    @State private var unhealthFoods = Food.unhealthyExamples()
    var body: some View {
        List {
            Section {
                ForEach(unhealthFoods) { food in
                   FoodRow(food: food)
                }
            } header: {
                Text(&quot;Unhealthy Foods&quot;)
            } footer: {
                Text(&quot;You should try to avoid them and only eat them occasionally.&quot;)
            }

            Section {
                ForEach(unhealthFoods) { food in
                   FoodRow(food: food)
                }
            } header: {
                Text(&quot;Unhealthy Foods&quot;)
            } footer: {
                Text(&quot;You should try to avoid them and only eat them occasionally.&quot;)
            }
            .listRowInsets(EdgeInsets.init(top: 20, leading: 50,
                                           bottom: 20, trailing: 50))
            Section {
                ForEach(unhealthFoods) { food in
                   FoodRow(food: food)
                }
                .listRowInsets(EdgeInsets.init(top: 0, leading: 40,
                                               bottom: 0, trailing: 40))
            } header: {
                Text(&quot;Unhealthy Foods&quot;)
            } footer: {
                Text(&quot;You should try to avoid them and only eat them occasionally.&quot;)
            }
        }
    }
}" style="color:#f6f6f4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula-soft" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #F286C4">struct</span><span style="color: #F6F6F4"> </span><span style="color: #97E1F1; font-style: italic">ContentView</span><span style="color: #F6F6F4">: View {</span></span>
<span class="line"><span style="color: #F6F6F4">    </span><span style="color: #F286C4">@State</span><span style="color: #F6F6F4"> </span><span style="color: #F286C4">private</span><span style="color: #F6F6F4"> </span><span style="color: #F286C4">var</span><span style="color: #F6F6F4"> unhealthFoods </span><span style="color: #F286C4">=</span><span style="color: #F6F6F4"> Food.</span><span style="color: #97E1F1">unhealthyExamples</span><span style="color: #F6F6F4">()</span></span>
<span class="line"><span style="color: #F6F6F4">    </span><span style="color: #F286C4">var</span><span style="color: #F6F6F4"> body: </span><span style="color: #F286C4">some</span><span style="color: #F6F6F4"> View {</span></span>
<span class="line"><span style="color: #F6F6F4">        List {</span></span>
<span class="line"><span style="color: #F6F6F4">            Section {</span></span>
<span class="line"><span style="color: #F6F6F4">                </span><span style="color: #97E1F1">ForEach</span><span style="color: #F6F6F4">(unhealthFoods) { food </span><span style="color: #F286C4">in</span></span>
<span class="line"><span style="color: #F6F6F4">                   </span><span style="color: #97E1F1">FoodRow</span><span style="color: #F6F6F4">(</span><span style="color: #97E1F1">food</span><span style="color: #F6F6F4">: food)</span></span>
<span class="line"><span style="color: #F6F6F4">                }</span></span>
<span class="line"><span style="color: #F6F6F4">            } header</span><span style="color: #F286C4">:</span><span style="color: #F6F6F4"> {</span></span>
<span class="line"><span style="color: #F6F6F4">                </span><span style="color: #97E1F1">Text</span><span style="color: #F6F6F4">(</span><span style="color: #DEE492">&quot;</span><span style="color: #E7EE98">Unhealthy Foods</span><span style="color: #DEE492">&quot;</span><span style="color: #F6F6F4">)</span></span>
<span class="line"><span style="color: #F6F6F4">            } footer</span><span style="color: #F286C4">:</span><span style="color: #F6F6F4"> {</span></span>
<span class="line"><span style="color: #F6F6F4">                </span><span style="color: #97E1F1">Text</span><span style="color: #F6F6F4">(</span><span style="color: #DEE492">&quot;</span><span style="color: #E7EE98">You should try to avoid them and only eat them occasionally.</span><span style="color: #DEE492">&quot;</span><span style="color: #F6F6F4">)</span></span>
<span class="line"><span style="color: #F6F6F4">            }</span></span>
<span class="line"></span>
<span class="line"><span style="color: #F6F6F4">            Section {</span></span>
<span class="line"><span style="color: #F6F6F4">                </span><span style="color: #97E1F1">ForEach</span><span style="color: #F6F6F4">(unhealthFoods) { food </span><span style="color: #F286C4">in</span></span>
<span class="line"><span style="color: #F6F6F4">                   </span><span style="color: #97E1F1">FoodRow</span><span style="color: #F6F6F4">(</span><span style="color: #97E1F1">food</span><span style="color: #F6F6F4">: food)</span></span>
<span class="line"><span style="color: #F6F6F4">                }</span></span>
<span class="line"><span style="color: #F6F6F4">            } header</span><span style="color: #F286C4">:</span><span style="color: #F6F6F4"> {</span></span>
<span class="line"><span style="color: #F6F6F4">                </span><span style="color: #97E1F1">Text</span><span style="color: #F6F6F4">(</span><span style="color: #DEE492">&quot;</span><span style="color: #E7EE98">Unhealthy Foods</span><span style="color: #DEE492">&quot;</span><span style="color: #F6F6F4">)</span></span>
<span class="line"><span style="color: #F6F6F4">            } footer</span><span style="color: #F286C4">:</span><span style="color: #F6F6F4"> {</span></span>
<span class="line"><span style="color: #F6F6F4">                </span><span style="color: #97E1F1">Text</span><span style="color: #F6F6F4">(</span><span style="color: #DEE492">&quot;</span><span style="color: #E7EE98">You should try to avoid them and only eat them occasionally.</span><span style="color: #DEE492">&quot;</span><span style="color: #F6F6F4">)</span></span>
<span class="line"><span style="color: #F6F6F4">            }</span></span>
<span class="line cbp-line-highlight"><span style="color: #F6F6F4">            .</span><span style="color: #97E1F1">listRowInsets</span><span style="color: #F6F6F4">(EdgeInsets.</span><span style="color: #F286C4">init</span><span style="color: #F6F6F4">(</span><span style="color: #97E1F1">top</span><span style="color: #F6F6F4">: </span><span style="color: #BF9EEE">20</span><span style="color: #F6F6F4">, </span><span style="color: #97E1F1">leading</span><span style="color: #F6F6F4">: </span><span style="color: #BF9EEE">50</span><span style="color: #F6F6F4">,</span></span>
<span class="line cbp-line-highlight"><span style="color: #F6F6F4">                                           </span><span style="color: #97E1F1">bottom</span><span style="color: #F6F6F4">: </span><span style="color: #BF9EEE">20</span><span style="color: #F6F6F4">, </span><span style="color: #97E1F1">trailing</span><span style="color: #F6F6F4">: </span><span style="color: #BF9EEE">50</span><span style="color: #F6F6F4">))</span></span>
<span class="line"><span style="color: #F6F6F4">            Section {</span></span>
<span class="line"><span style="color: #F6F6F4">                </span><span style="color: #97E1F1">ForEach</span><span style="color: #F6F6F4">(unhealthFoods) { food </span><span style="color: #F286C4">in</span></span>
<span class="line"><span style="color: #F6F6F4">                   </span><span style="color: #97E1F1">FoodRow</span><span style="color: #F6F6F4">(</span><span style="color: #97E1F1">food</span><span style="color: #F6F6F4">: food)</span></span>
<span class="line"><span style="color: #F6F6F4">                }</span></span>
<span class="line cbp-line-highlight"><span style="color: #F6F6F4">                .</span><span style="color: #97E1F1">listRowInsets</span><span style="color: #F6F6F4">(EdgeInsets.</span><span style="color: #F286C4">init</span><span style="color: #F6F6F4">(</span><span style="color: #97E1F1">top</span><span style="color: #F6F6F4">: </span><span style="color: #BF9EEE">0</span><span style="color: #F6F6F4">, </span><span style="color: #97E1F1">leading</span><span style="color: #F6F6F4">: </span><span style="color: #BF9EEE">40</span><span style="color: #F6F6F4">,</span></span>
<span class="line cbp-line-highlight"><span style="color: #F6F6F4">                                               </span><span style="color: #97E1F1">bottom</span><span style="color: #F6F6F4">: </span><span style="color: #BF9EEE">0</span><span style="color: #F6F6F4">, </span><span style="color: #97E1F1">trailing</span><span style="color: #F6F6F4">: </span><span style="color: #BF9EEE">40</span><span style="color: #F6F6F4">))</span></span>
<span class="line"><span style="color: #F6F6F4">            } header</span><span style="color: #F286C4">:</span><span style="color: #F6F6F4"> {</span></span>
<span class="line"><span style="color: #F6F6F4">                </span><span style="color: #97E1F1">Text</span><span style="color: #F6F6F4">(</span><span style="color: #DEE492">&quot;</span><span style="color: #E7EE98">Unhealthy Foods</span><span style="color: #DEE492">&quot;</span><span style="color: #F6F6F4">)</span></span>
<span class="line"><span style="color: #F6F6F4">            } footer</span><span style="color: #F286C4">:</span><span style="color: #F6F6F4"> {</span></span>
<span class="line"><span style="color: #F6F6F4">                </span><span style="color: #97E1F1">Text</span><span style="color: #F6F6F4">(</span><span style="color: #DEE492">&quot;</span><span style="color: #E7EE98">You should try to avoid them and only eat them occasionally.</span><span style="color: #DEE492">&quot;</span><span style="color: #F6F6F4">)</span></span>
<span class="line"><span style="color: #F6F6F4">            }</span></span>
<span class="line"><span style="color: #F6F6F4">        }</span></span>
<span class="line"><span style="color: #F6F6F4">    }</span></span>
<span class="line"><span style="color: #F6F6F4">}</span></span></code></pre></div>



<div style="height:43px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">List Section Headers and Footers</h2>



<p class="wp-block-paragraph">You can add sections for Lists with different initializers. Some of them are deprecated with iOS 16.2 and macOS 13.1 like init(header:content:). Use i<code>nit(content:header)</code>&nbsp;instead, which is available for iOS 13.0+ and macOS 10.15+. This has the advantage that you can specify a view for the header and footer. For example, the following code creates a header with a larger font size that has a foreground color of pink.</p>


<div class="wp-block-image">
<figure class="alignright size-full is-resized"><img decoding="async" width="792" height="952" src="https://www.swiftyplace.com/wp-content/uploads/2023/10/list_section_title_large.webp" alt="swiftui list with section header that has a larger font size and pink foreground color" class="wp-image-3541" style="width:293px;height:352px" srcset="https://www.swiftyplace.com/wp-content/uploads/2023/10/list_section_title_large.webp 792w, https://www.swiftyplace.com/wp-content/uploads/2023/10/list_section_title_large-250x300.webp 250w, https://www.swiftyplace.com/wp-content/uploads/2023/10/list_section_title_large-768x923.webp 768w" sizes="(max-width: 792px) 100vw, 792px" /></figure>
</div>


<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono-NL.ttf" style="font-size:1rem;font-family:Code-Pro-JetBrains-Mono-NL,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.5rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" data-code="Section {
    ForEach(unhealthFoods) { food in
        FoodRow(food: food)
    }
} header: {
    Text(&quot;Unhealthy Foods&quot;)
        .font(.title)
        .bold()
        .foregroundColor(.pink)
        .textCase(.lowercase)
        .padding()
}" style="color:#f6f6f4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula-soft" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #F6F6F4">Section {</span></span>
<span class="line"><span style="color: #F6F6F4">    </span><span style="color: #97E1F1">ForEach</span><span style="color: #F6F6F4">(unhealthFoods) { food </span><span style="color: #F286C4">in</span></span>
<span class="line"><span style="color: #F6F6F4">        </span><span style="color: #97E1F1">FoodRow</span><span style="color: #F6F6F4">(</span><span style="color: #97E1F1">food</span><span style="color: #F6F6F4">: food)</span></span>
<span class="line"><span style="color: #F6F6F4">    }</span></span>
<span class="line"><span style="color: #F6F6F4">} header</span><span style="color: #F286C4">:</span><span style="color: #F6F6F4"> {</span></span>
<span class="line"><span style="color: #F6F6F4">    </span><span style="color: #97E1F1">Text</span><span style="color: #F6F6F4">(</span><span style="color: #DEE492">&quot;</span><span style="color: #E7EE98">Unhealthy Foods</span><span style="color: #DEE492">&quot;</span><span style="color: #F6F6F4">)</span></span>
<span class="line"><span style="color: #F6F6F4">        .</span><span style="color: #97E1F1">font</span><span style="color: #F6F6F4">(.title)</span></span>
<span class="line"><span style="color: #F6F6F4">        .</span><span style="color: #97E1F1">bold</span><span style="color: #F6F6F4">()</span></span>
<span class="line"><span style="color: #F6F6F4">        .</span><span style="color: #97E1F1">foregroundColor</span><span style="color: #F6F6F4">(.pink)</span></span>
<span class="line"><span style="color: #F6F6F4">        .</span><span style="color: #97E1F1">textCase</span><span style="color: #F6F6F4">(.lowercase)</span></span>
<span class="line"><span style="color: #F6F6F4">        .</span><span style="color: #97E1F1">padding</span><span style="color: #F6F6F4">()</span></span>
<span class="line"><span style="color: #F6F6F4">}</span></span></code></pre></div>



<div style="height:31px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="wp-block-paragraph">You can also use an HStack to add a button next to the section header text:</p>


<div class="wp-block-image">
<figure class="alignright size-full is-resized"><img decoding="async" width="792" height="952" src="https://www.swiftyplace.com/wp-content/uploads/2023/10/list_section_title_button.webp" alt="swiftui list with section header that has a text and button" class="wp-image-3542" style="width:329px;height:395px" srcset="https://www.swiftyplace.com/wp-content/uploads/2023/10/list_section_title_button.webp 792w, https://www.swiftyplace.com/wp-content/uploads/2023/10/list_section_title_button-250x300.webp 250w, https://www.swiftyplace.com/wp-content/uploads/2023/10/list_section_title_button-768x923.webp 768w" sizes="(max-width: 792px) 100vw, 792px" /></figure>
</div>


<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono-NL.ttf" style="font-size:1rem;font-family:Code-Pro-JetBrains-Mono-NL,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-highlight-color:rgba(251, 251, 239, 0.2);line-height:1.5rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" data-code="Section {
    ForEach(unhealthFoods) { food in
        FoodRow(food: food)
    }
} header: {
    HStack {
        Text(&quot;Unhealthy Foods&quot;)
        Spacer()
        Button { } label: {
            Image(systemName: &quot;plus.circle.fill&quot;)
        }
    }
    .foregroundColor(.blue)
} footer: {
    Text(&quot;You should try to avoid them and only eat them occasionally.&quot;)
        .font(.body)
}" style="color:#f6f6f4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula-soft" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #F6F6F4">Section {</span></span>
<span class="line"><span style="color: #F6F6F4">    </span><span style="color: #97E1F1">ForEach</span><span style="color: #F6F6F4">(unhealthFoods) { food </span><span style="color: #F286C4">in</span></span>
<span class="line"><span style="color: #F6F6F4">        </span><span style="color: #97E1F1">FoodRow</span><span style="color: #F6F6F4">(</span><span style="color: #97E1F1">food</span><span style="color: #F6F6F4">: food)</span></span>
<span class="line"><span style="color: #F6F6F4">    }</span></span>
<span class="line"><span style="color: #F6F6F4">} header</span><span style="color: #F286C4">:</span><span style="color: #F6F6F4"> {</span></span>
<span class="line"><span style="color: #F6F6F4">    HStack {</span></span>
<span class="line"><span style="color: #F6F6F4">        </span><span style="color: #97E1F1">Text</span><span style="color: #F6F6F4">(</span><span style="color: #DEE492">&quot;</span><span style="color: #E7EE98">Unhealthy Foods</span><span style="color: #DEE492">&quot;</span><span style="color: #F6F6F4">)</span></span>
<span class="line"><span style="color: #F6F6F4">        </span><span style="color: #97E1F1">Spacer</span><span style="color: #F6F6F4">()</span></span>
<span class="line"><span style="color: #F6F6F4">        Button { } label</span><span style="color: #F286C4">:</span><span style="color: #F6F6F4"> {</span></span>
<span class="line"><span style="color: #F6F6F4">            </span><span style="color: #97E1F1">Image</span><span style="color: #F6F6F4">(</span><span style="color: #97E1F1">systemName</span><span style="color: #F6F6F4">: </span><span style="color: #DEE492">&quot;</span><span style="color: #E7EE98">plus.circle.fill</span><span style="color: #DEE492">&quot;</span><span style="color: #F6F6F4">)</span></span>
<span class="line"><span style="color: #F6F6F4">        }</span></span>
<span class="line"><span style="color: #F6F6F4">    }</span></span>
<span class="line"><span style="color: #F6F6F4">    .</span><span style="color: #97E1F1">foregroundColor</span><span style="color: #F6F6F4">(.blue)</span></span>
<span class="line"><span style="color: #F6F6F4">} footer</span><span style="color: #F286C4">:</span><span style="color: #F6F6F4"> {</span></span>
<span class="line"><span style="color: #F6F6F4">    </span><span style="color: #97E1F1">Text</span><span style="color: #F6F6F4">(</span><span style="color: #DEE492">&quot;</span><span style="color: #E7EE98">You should try to avoid them and only eat them occasionally.</span><span style="color: #DEE492">&quot;</span><span style="color: #F6F6F4">)</span></span>
<span class="line"><span style="color: #F6F6F4">        .</span><span style="color: #97E1F1">font</span><span style="color: #F6F6F4">(.body)</span></span>
<span class="line"><span style="color: #F6F6F4">}</span></span></code></pre></div>



<div style="height:32px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="wp-block-paragraph">For iOS 15.0+ you can also increase the header prominence, which makes the section header larger and bold. This works also with dynamic types.</p>


<div class="wp-block-image">
<figure class="alignright is-resized"><img decoding="async" src="https://www.swiftyplace.com/wp-content/uploads/2023/08/section-header-prominence-907x1024.jpg" alt="SwiftUI List example: setting the header prominence to increased" style="width:305px;height:344px"/></figure>
</div>


<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono-NL.ttf" style="font-size:1rem;font-family:Code-Pro-JetBrains-Mono-NL,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.5rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" data-code="Section {
    ForEach(healthFoods) { food in
       FoodRow(food: food)
    }
} header: {
    Text(&quot;Healthy Foods&quot;)
} footer: {
    Text(&quot;You should try to eat them regularly.&quot;)
}
.headerProminence(.increased) " style="color:#f6f6f4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula-soft" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #F6F6F4">Section {</span></span>
<span class="line"><span style="color: #F6F6F4">    </span><span style="color: #97E1F1">ForEach</span><span style="color: #F6F6F4">(healthFoods) { food </span><span style="color: #F286C4">in</span></span>
<span class="line"><span style="color: #F6F6F4">       </span><span style="color: #97E1F1">FoodRow</span><span style="color: #F6F6F4">(</span><span style="color: #97E1F1">food</span><span style="color: #F6F6F4">: food)</span></span>
<span class="line"><span style="color: #F6F6F4">    }</span></span>
<span class="line"><span style="color: #F6F6F4">} header</span><span style="color: #F286C4">:</span><span style="color: #F6F6F4"> {</span></span>
<span class="line"><span style="color: #F6F6F4">    </span><span style="color: #97E1F1">Text</span><span style="color: #F6F6F4">(</span><span style="color: #DEE492">&quot;</span><span style="color: #E7EE98">Healthy Foods</span><span style="color: #DEE492">&quot;</span><span style="color: #F6F6F4">)</span></span>
<span class="line"><span style="color: #F6F6F4">} footer</span><span style="color: #F286C4">:</span><span style="color: #F6F6F4"> {</span></span>
<span class="line"><span style="color: #F6F6F4">    </span><span style="color: #97E1F1">Text</span><span style="color: #F6F6F4">(</span><span style="color: #DEE492">&quot;</span><span style="color: #E7EE98">You should try to eat them regularly.</span><span style="color: #DEE492">&quot;</span><span style="color: #F6F6F4">)</span></span>
<span class="line"><span style="color: #F6F6F4">}</span></span>
<span class="line"><span style="color: #F6F6F4">.</span><span style="color: #97E1F1">headerProminence</span><span style="color: #F6F6F4">(.increased) </span></span></code></pre></div>



<div style="height:60px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">Changing the SwiftUI List Background Color</h2>



<p class="wp-block-paragraph">One of the most requested adjustments for the List has been to change the background of the List and the individual cells. With SwiftUI 4 the implementation of List changes. Before it was based on UITableView and now it uses UICollectionView. If you are used to some hacky solutions with UITableView.appearance(), you are in for an awesome improvement.</p>



<div style="height:39px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">How to set SwiftUI List background to clear?</h3>



<p class="wp-block-paragraph">With iOS 16+ and macOS 13+, you can now directly remove the list background with a new modifier scrollContentBackground. This also works for ScrollView and TextEditor.</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono-NL.ttf" style="font-size:1rem;font-family:Code-Pro-JetBrains-Mono-NL,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.5rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" data-code="List {
    ...
}
.scrollContentBackground(.hidden)" style="color:#f6f6f4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula-soft" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #F6F6F4">List {</span></span>
<span class="line"><span style="color: #F6F6F4">    </span><span style="color: #F286C4">...</span></span>
<span class="line"><span style="color: #F6F6F4">}</span></span>
<span class="line"><span style="color: #F6F6F4">.</span><span style="color: #97E1F1">scrollContentBackground</span><span style="color: #F6F6F4">(.hidden)</span></span></code></pre></div>



<div style="height:31px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="gb-container gb-container-c5dedc2e">
<div class="gb-container gb-container-f7a433c7">
<div class="gb-container gb-container-7a8dc7a3">

<figure class="gb-block-image gb-block-image-f04fbbad"><a href="https://www.swiftyplace.com/free-swiftui-layout-cookbook" target="_blank" rel="noopener noreferrer"><img fetchpriority="high" decoding="async" width="640" height="500" class="gb-image gb-image-f04fbbad" src="http://www.swiftyplace.com/wp-content/uploads/2024/01/swiftui_roadmap_preview.webp" alt="swiftui roadmap " title="swiftui_roadmap_preview" srcset="https://www.swiftyplace.com/wp-content/uploads/2024/01/swiftui_roadmap_preview.webp 640w, https://www.swiftyplace.com/wp-content/uploads/2024/01/swiftui_roadmap_preview-300x234.webp 300w" sizes="(max-width: 640px) 100vw, 640px" /></a></figure>

</div>

<div class="gb-container gb-container-98352fe6">

<h2 class="gb-headline gb-headline-4aacd94c gb-headline-text">Feeling Lost in SwiftUI?</h2>



<p class="gb-headline gb-headline-5e6c4f85 gb-headline-text">This SwiftUI roadmap shows you what to learn next.</p>



<ul style="margin-top:0;margin-bottom:0;font-size:18px" class="wp-block-list">
<li>Key concepts at a glance</li>



<li>Spot your knowledge gaps</li>



<li>Guide your learning path</li>
</ul>


<div class="gb-container gb-container-34a8ad02">

<a class="gb-button gb-button-63e90e76 gb-button-blue" href="https://school.swiftyplace.com/f/swiftui-roadmap" target="_blank" rel="noopener noreferrer"><span class="gb-button-text">Get the FREE PDF</span><span class="gb-icon"><svg aria-hidden="true" role="img" height="1em" width="1em" viewBox="0 0 256 512" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z"></path></svg></span></a>

</div>


<p class="gb-headline gb-headline-7ef80e86 gb-headline-text">Ideal for beginners and self-learners.</p>

</div>
</div>
</div>


<div style="height:48px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">How do I modify the background color of a List in SwiftUI?</h3>



<p class="wp-block-paragraph">You can use <code>scrollContentBackground</code> to hide the default List background and then add your own:</p>


<div class="wp-block-image">
<figure class="alignright is-resized"><img decoding="async" src="https://www.swiftyplace.com/wp-content/uploads/2023/08/list-background-555x1024.jpg" alt="An example of how to modify the background color of a List in SwiftUI?" style="width:323px;height:596px"/></figure>
</div>


<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono-NL.ttf" style="font-size:1rem;font-family:Code-Pro-JetBrains-Mono-NL,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-highlight-color:rgba(251, 251, 239, 0.2);line-height:1.5rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" data-code="struct ContentView: View {
    @State private var healthFoods = Food.goodExamples()
    @State private var unhealthFoods = Food.unhealthyExamples()

    var body: some View {
        List {
            Section {
                ForEach(healthFoods) { food in
                   FoodRow(food: food)
                }
            } header: {
                Text(&quot;Healthy Foods&quot;)
            } footer: {
                Text(&quot;You should try to eat them regularly.&quot;)
            }

            Section {
                ForEach(unhealthFoods) { food in
                   FoodRow(food: food)
                }
            } header: {
                Text(&quot;Unhealthy Foods&quot;)
            } footer: {
                Text(&quot;You should try to avoid them and only eat them occasionally.&quot;)
            }
            .foregroundColor(.black)
        }
        .scrollContentBackground(.hidden)
        .background(Color.mint.edgesIgnoringSafeArea(.all))
    }
}" style="color:#f6f6f4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula-soft" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #F286C4">struct</span><span style="color: #F6F6F4"> </span><span style="color: #97E1F1; font-style: italic">ContentView</span><span style="color: #F6F6F4">: View {</span></span>
<span class="line"><span style="color: #F6F6F4">    </span><span style="color: #F286C4">@State</span><span style="color: #F6F6F4"> </span><span style="color: #F286C4">private</span><span style="color: #F6F6F4"> </span><span style="color: #F286C4">var</span><span style="color: #F6F6F4"> healthFoods </span><span style="color: #F286C4">=</span><span style="color: #F6F6F4"> Food.</span><span style="color: #97E1F1">goodExamples</span><span style="color: #F6F6F4">()</span></span>
<span class="line"><span style="color: #F6F6F4">    </span><span style="color: #F286C4">@State</span><span style="color: #F6F6F4"> </span><span style="color: #F286C4">private</span><span style="color: #F6F6F4"> </span><span style="color: #F286C4">var</span><span style="color: #F6F6F4"> unhealthFoods </span><span style="color: #F286C4">=</span><span style="color: #F6F6F4"> Food.</span><span style="color: #97E1F1">unhealthyExamples</span><span style="color: #F6F6F4">()</span></span>
<span class="line"></span>
<span class="line"><span style="color: #F6F6F4">    </span><span style="color: #F286C4">var</span><span style="color: #F6F6F4"> body: </span><span style="color: #F286C4">some</span><span style="color: #F6F6F4"> View {</span></span>
<span class="line"><span style="color: #F6F6F4">        List {</span></span>
<span class="line"><span style="color: #F6F6F4">            Section {</span></span>
<span class="line"><span style="color: #F6F6F4">                </span><span style="color: #97E1F1">ForEach</span><span style="color: #F6F6F4">(healthFoods) { food </span><span style="color: #F286C4">in</span></span>
<span class="line"><span style="color: #F6F6F4">                   </span><span style="color: #97E1F1">FoodRow</span><span style="color: #F6F6F4">(</span><span style="color: #97E1F1">food</span><span style="color: #F6F6F4">: food)</span></span>
<span class="line"><span style="color: #F6F6F4">                }</span></span>
<span class="line"><span style="color: #F6F6F4">            } header</span><span style="color: #F286C4">:</span><span style="color: #F6F6F4"> {</span></span>
<span class="line"><span style="color: #F6F6F4">                </span><span style="color: #97E1F1">Text</span><span style="color: #F6F6F4">(</span><span style="color: #DEE492">&quot;</span><span style="color: #E7EE98">Healthy Foods</span><span style="color: #DEE492">&quot;</span><span style="color: #F6F6F4">)</span></span>
<span class="line"><span style="color: #F6F6F4">            } footer</span><span style="color: #F286C4">:</span><span style="color: #F6F6F4"> {</span></span>
<span class="line"><span style="color: #F6F6F4">                </span><span style="color: #97E1F1">Text</span><span style="color: #F6F6F4">(</span><span style="color: #DEE492">&quot;</span><span style="color: #E7EE98">You should try to eat them regularly.</span><span style="color: #DEE492">&quot;</span><span style="color: #F6F6F4">)</span></span>
<span class="line"><span style="color: #F6F6F4">            }</span></span>
<span class="line"></span>
<span class="line"><span style="color: #F6F6F4">            Section {</span></span>
<span class="line"><span style="color: #F6F6F4">                </span><span style="color: #97E1F1">ForEach</span><span style="color: #F6F6F4">(unhealthFoods) { food </span><span style="color: #F286C4">in</span></span>
<span class="line"><span style="color: #F6F6F4">                   </span><span style="color: #97E1F1">FoodRow</span><span style="color: #F6F6F4">(</span><span style="color: #97E1F1">food</span><span style="color: #F6F6F4">: food)</span></span>
<span class="line"><span style="color: #F6F6F4">                }</span></span>
<span class="line"><span style="color: #F6F6F4">            } header</span><span style="color: #F286C4">:</span><span style="color: #F6F6F4"> {</span></span>
<span class="line"><span style="color: #F6F6F4">                </span><span style="color: #97E1F1">Text</span><span style="color: #F6F6F4">(</span><span style="color: #DEE492">&quot;</span><span style="color: #E7EE98">Unhealthy Foods</span><span style="color: #DEE492">&quot;</span><span style="color: #F6F6F4">)</span></span>
<span class="line"><span style="color: #F6F6F4">            } footer</span><span style="color: #F286C4">:</span><span style="color: #F6F6F4"> {</span></span>
<span class="line"><span style="color: #F6F6F4">                </span><span style="color: #97E1F1">Text</span><span style="color: #F6F6F4">(</span><span style="color: #DEE492">&quot;</span><span style="color: #E7EE98">You should try to avoid them and only eat them occasionally.</span><span style="color: #DEE492">&quot;</span><span style="color: #F6F6F4">)</span></span>
<span class="line"><span style="color: #F6F6F4">            }</span></span>
<span class="line"><span style="color: #F6F6F4">            .</span><span style="color: #97E1F1">foregroundColor</span><span style="color: #F6F6F4">(.black)</span></span>
<span class="line"><span style="color: #F6F6F4">        }</span></span>
<span class="line cbp-line-highlight"><span style="color: #F6F6F4">        .</span><span style="color: #97E1F1">scrollContentBackground</span><span style="color: #F6F6F4">(.hidden)</span></span>
<span class="line cbp-line-highlight"><span style="color: #F6F6F4">        .</span><span style="color: #97E1F1">background</span><span style="color: #F6F6F4">(Color.mint.</span><span style="color: #97E1F1">edgesIgnoringSafeArea</span><span style="color: #F6F6F4">(.all))</span></span>
<span class="line"><span style="color: #F6F6F4">    }</span></span>
<span class="line"><span style="color: #F6F6F4">}</span></span></code></pre></div>



<div style="height:51px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">Adjust Cell Background inside a List</h3>



<p class="wp-block-paragraph">You can use the listRowBackground modifier to change the list row background. It takes a view as an argument, so you can set a color or a shape. You can add listRowBackground to Section, <a href="https://www.swiftyplace.com/blog/swiftui-foreach-more-than-just-loops-in-swift" data-type="link" data-id="https://www.swiftyplace.com/blog/swiftui-foreach-more-than-just-loops-in-swift">ForEach</a>, or each individual row:</p>


<div class="wp-block-image">
<figure class="alignright is-resized"><img decoding="async" src="https://www.swiftyplace.com/wp-content/uploads/2023/08/list-row-background-690x1024.jpg" alt="An example of how to change the list row background color in a SwiftUI List" style="width:418px;height:621px"/></figure>
</div>


<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono-NL.ttf" style="font-size:1rem;font-family:Code-Pro-JetBrains-Mono-NL,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#f6f6f4;--cbp-line-number-width:calc(2 * 0.6 * 1rem);--cbp-line-highlight-color:rgba(251, 251, 239, 0.2);line-height:1.5rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" data-code="List {
    Section {
        ForEach(healthFoods) { food in
           FoodRow(food: food)
                .listRowBackground(food.color)
        }
    } header: {
        Text(&quot;Healthy Foods&quot;)
    } footer: {
        Text(&quot;You should try to eat them regularly.&quot;)
    }

    Section {
        ForEach(unhealthFoods) { food in
            FoodRow(food: food)
        }
        .listRowBackground(
            Capsule()
                .fill(Color.gray)
                .padding(2)
        )
    } header: {
        Text(&quot;Unhealthy Foods&quot;)
    } footer: {
        Text(&quot;You should try to avoid them and only eat them occasionally.&quot;)
    }

    Section {
        ForEach(unhealthFoods) { food in
            FoodRow(food: food)
        }
    } header: {
        Text(&quot;Unhealthy Foods&quot;)
    } footer: {
        Text(&quot;You should try to avoid them and only eat them occasionally.&quot;)
    }
    .listRowBackground(Color.blue)
}" style="color:#f6f6f4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula-soft" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #F6F6F4">List {</span></span>
<span class="line"><span style="color: #F6F6F4">    Section {</span></span>
<span class="line"><span style="color: #F6F6F4">        </span><span style="color: #97E1F1">ForEach</span><span style="color: #F6F6F4">(healthFoods) { food </span><span style="color: #F286C4">in</span></span>
<span class="line"><span style="color: #F6F6F4">           </span><span style="color: #97E1F1">FoodRow</span><span style="color: #F6F6F4">(</span><span style="color: #97E1F1">food</span><span style="color: #F6F6F4">: food)</span></span>
<span class="line cbp-line-highlight"><span style="color: #F6F6F4">                .</span><span style="color: #97E1F1">listRowBackground</span><span style="color: #F6F6F4">(food.</span><span style="color: #BF9EEE">color</span><span style="color: #F6F6F4">)</span></span>
<span class="line"><span style="color: #F6F6F4">        }</span></span>
<span class="line"><span style="color: #F6F6F4">    } header</span><span style="color: #F286C4">:</span><span style="color: #F6F6F4"> {</span></span>
<span class="line"><span style="color: #F6F6F4">        </span><span style="color: #97E1F1">Text</span><span style="color: #F6F6F4">(</span><span style="color: #DEE492">&quot;</span><span style="color: #E7EE98">Healthy Foods</span><span style="color: #DEE492">&quot;</span><span style="color: #F6F6F4">)</span></span>
<span class="line"><span style="color: #F6F6F4">    } footer</span><span style="color: #F286C4">:</span><span style="color: #F6F6F4"> {</span></span>
<span class="line"><span style="color: #F6F6F4">        </span><span style="color: #97E1F1">Text</span><span style="color: #F6F6F4">(</span><span style="color: #DEE492">&quot;</span><span style="color: #E7EE98">You should try to eat them regularly.</span><span style="color: #DEE492">&quot;</span><span style="color: #F6F6F4">)</span></span>
<span class="line"><span style="color: #F6F6F4">    }</span></span>
<span class="line"></span>
<span class="line"><span style="color: #F6F6F4">    Section {</span></span>
<span class="line"><span style="color: #F6F6F4">        </span><span style="color: #97E1F1">ForEach</span><span style="color: #F6F6F4">(unhealthFoods) { food </span><span style="color: #F286C4">in</span></span>
<span class="line"><span style="color: #F6F6F4">            </span><span style="color: #97E1F1">FoodRow</span><span style="color: #F6F6F4">(</span><span style="color: #97E1F1">food</span><span style="color: #F6F6F4">: food)</span></span>
<span class="line"><span style="color: #F6F6F4">        }</span></span>
<span class="line cbp-line-highlight"><span style="color: #F6F6F4">        .</span><span style="color: #97E1F1">listRowBackground</span><span style="color: #F6F6F4">(</span></span>
<span class="line cbp-line-highlight"><span style="color: #F6F6F4">            </span><span style="color: #97E1F1">Capsule</span><span style="color: #F6F6F4">()</span></span>
<span class="line cbp-line-highlight"><span style="color: #F6F6F4">                .</span><span style="color: #97E1F1">fill</span><span style="color: #F6F6F4">(Color.gray)</span></span>
<span class="line cbp-line-highlight"><span style="color: #F6F6F4">                .</span><span style="color: #97E1F1">padding</span><span style="color: #F6F6F4">(</span><span style="color: #BF9EEE">2</span><span style="color: #F6F6F4">)</span></span>
<span class="line cbp-line-highlight"><span style="color: #F6F6F4">        )</span></span>
<span class="line"><span style="color: #F6F6F4">    } header</span><span style="color: #F286C4">:</span><span style="color: #F6F6F4"> {</span></span>
<span class="line"><span style="color: #F6F6F4">        </span><span style="color: #97E1F1">Text</span><span style="color: #F6F6F4">(</span><span style="color: #DEE492">&quot;</span><span style="color: #E7EE98">Unhealthy Foods</span><span style="color: #DEE492">&quot;</span><span style="color: #F6F6F4">)</span></span>
<span class="line"><span style="color: #F6F6F4">    } footer</span><span style="color: #F286C4">:</span><span style="color: #F6F6F4"> {</span></span>
<span class="line"><span style="color: #F6F6F4">        </span><span style="color: #97E1F1">Text</span><span style="color: #F6F6F4">(</span><span style="color: #DEE492">&quot;</span><span style="color: #E7EE98">You should try to avoid them and only eat them occasionally.</span><span style="color: #DEE492">&quot;</span><span style="color: #F6F6F4">)</span></span>
<span class="line"><span style="color: #F6F6F4">    }</span></span>
<span class="line"></span>
<span class="line"><span style="color: #F6F6F4">    Section {</span></span>
<span class="line"><span style="color: #F6F6F4">        </span><span style="color: #97E1F1">ForEach</span><span style="color: #F6F6F4">(unhealthFoods) { food </span><span style="color: #F286C4">in</span></span>
<span class="line"><span style="color: #F6F6F4">            </span><span style="color: #97E1F1">FoodRow</span><span style="color: #F6F6F4">(</span><span style="color: #97E1F1">food</span><span style="color: #F6F6F4">: food)</span></span>
<span class="line"><span style="color: #F6F6F4">        }</span></span>
<span class="line"><span style="color: #F6F6F4">    } header</span><span style="color: #F286C4">:</span><span style="color: #F6F6F4"> {</span></span>
<span class="line"><span style="color: #F6F6F4">        </span><span style="color: #97E1F1">Text</span><span style="color: #F6F6F4">(</span><span style="color: #DEE492">&quot;</span><span style="color: #E7EE98">Unhealthy Foods</span><span style="color: #DEE492">&quot;</span><span style="color: #F6F6F4">)</span></span>
<span class="line"><span style="color: #F6F6F4">    } footer</span><span style="color: #F286C4">:</span><span style="color: #F6F6F4"> {</span></span>
<span class="line"><span style="color: #F6F6F4">        </span><span style="color: #97E1F1">Text</span><span style="color: #F6F6F4">(</span><span style="color: #DEE492">&quot;</span><span style="color: #E7EE98">You should try to avoid them and only eat them occasionally.</span><span style="color: #DEE492">&quot;</span><span style="color: #F6F6F4">)</span></span>
<span class="line"><span style="color: #F6F6F4">    }</span></span>
<span class="line cbp-line-highlight"><span style="color: #F6F6F4">    .</span><span style="color: #97E1F1">listRowBackground</span><span style="color: #F6F6F4">(Color.blue)</span></span>
<span class="line"><span style="color: #F6F6F4">}</span></span></code></pre></div>



<div style="height:49px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">An Extravagant Example for SwiftUI List Style</h2>



<p class="wp-block-paragraph">In order to see for myself, how much we can do to achieve a unique appearance for SwiftUI list. I went and applied pretty much all available tools to a simple-looking list. Can you believe how much we now can do with SwiftUI List? &#8211; Just amazing <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



			
			
										
			
			


<div style="height:35px" aria-hidden="true" class="wp-block-spacer"></div>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono-NL.ttf" style="font-size:1rem;font-family:Code-Pro-JetBrains-Mono-NL,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#f6f6f4;--cbp-line-number-width:calc(2 * 0.6 * 1rem);--cbp-line-highlight-color:rgba(251, 251, 239, 0.2);line-height:1.5rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" data-code="struct ContentView: View {

    @State private var healthyFoods = Food.goodExamples()
    @State private var unhealthFoods = Food.unhealthyExamples()

    var body: some View {
        List {
            Section {
                ForEach(healthyFoods) { food in
                   FoodRow(food: food)
                        .listRowBackground(food.color)
                }
            } header: {
                Text(&quot;Healthy Foods&quot;)
            }
            .listRowBackground(Color.blue)
            .foregroundColor(.black)

            Section {
                ForEach(healthyFoods) { food in
                    FoodRow(food: food)
                }
                .listRowBackground(
                    Capsule()
                        .fill(Color(white: 1, opacity: 0.8))
                        .padding(.vertical, 2).padding(.horizontal, 20)
                )
                .listRowSeparator(.hidden)
                .foregroundColor(.indigo)
            } header: {
                Text(&quot;Healthy Foods&quot;)
                    .font(.title)
                    .bold()
                    .foregroundColor(.white)
                    .shadow(radius: 5)
            }
            .listRowInsets(.init(top: 0, leading: 40, bottom: 0, trailing: 40))

            Section {
                ForEach(unhealthFoods) { food in
                   FoodRow(food: food)
                }
                .foregroundColor(.pink)
                .listRowInsets(.init(top: 0, leading: 60, bottom: 0, trailing: 60))
                .listRowSeparatorTint(.orange)
            } header: {
                Text(&quot;Unhealthy Foods&quot;)
                    .foregroundColor(.black)
            } footer: {
                Text(&quot;You should try to avoid them and only eat them occasionally.&quot;)
                    .foregroundColor(.white)
            }
            .listRowBackground(Color.black)
            .listSectionSeparatorTint(.yellow)
            .headerProminence(.increased)
        }
        .scrollContentBackground(.hidden)
        .background(
            Image(&quot;candies&quot;)
                .resizable()
                .scaledToFill()
                .clipped()
                .edgesIgnoringSafeArea(.all)
                .blur(radius: 3)
                .overlay(Color.indigo.opacity(0.2))
        )
        .environment(\.defaultMinListHeaderHeight, 45)
        .environment(\.defaultMinListRowHeight, 50)
    }
}" style="color:#f6f6f4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dracula-soft" style="background-color: #282A36" tabindex="0"><code><span class="line"><span style="color: #F286C4">struct</span><span style="color: #F6F6F4"> </span><span style="color: #97E1F1; font-style: italic">ContentView</span><span style="color: #F6F6F4">: View {</span></span>
<span class="line"></span>
<span class="line"><span style="color: #F6F6F4">    </span><span style="color: #F286C4">@State</span><span style="color: #F6F6F4"> </span><span style="color: #F286C4">private</span><span style="color: #F6F6F4"> </span><span style="color: #F286C4">var</span><span style="color: #F6F6F4"> healthyFoods </span><span style="color: #F286C4">=</span><span style="color: #F6F6F4"> Food.</span><span style="color: #97E1F1">goodExamples</span><span style="color: #F6F6F4">()</span></span>
<span class="line"><span style="color: #F6F6F4">    </span><span style="color: #F286C4">@State</span><span style="color: #F6F6F4"> </span><span style="color: #F286C4">private</span><span style="color: #F6F6F4"> </span><span style="color: #F286C4">var</span><span style="color: #F6F6F4"> unhealthFoods </span><span style="color: #F286C4">=</span><span style="color: #F6F6F4"> Food.</span><span style="color: #97E1F1">unhealthyExamples</span><span style="color: #F6F6F4">()</span></span>
<span class="line"></span>
<span class="line"><span style="color: #F6F6F4">    </span><span style="color: #F286C4">var</span><span style="color: #F6F6F4"> body: </span><span style="color: #F286C4">some</span><span style="color: #F6F6F4"> View {</span></span>
<span class="line"><span style="color: #F6F6F4">        List {</span></span>
<span class="line"><span style="color: #F6F6F4">            Section {</span></span>
<span class="line"><span style="color: #F6F6F4">                </span><span style="color: #97E1F1">ForEach</span><span style="color: #F6F6F4">(healthyFoods) { food </span><span style="color: #F286C4">in</span></span>
<span class="line"><span style="color: #F6F6F4">                   </span><span style="color: #97E1F1">FoodRow</span><span style="color: #F6F6F4">(</span><span style="color: #97E1F1">food</span><span style="color: #F6F6F4">: food)</span></span>
<span class="line cbp-line-highlight"><span style="color: #F6F6F4">                        .</span><span style="color: #97E1F1">listRowBackground</span><span style="color: #F6F6F4">(food.</span><span style="color: #BF9EEE">color</span><span style="color: #F6F6F4">)</span></span>
<span class="line"><span style="color: #F6F6F4">                }</span></span>
<span class="line"><span style="color: #F6F6F4">            } header</span><span style="color: #F286C4">:</span><span style="color: #F6F6F4"> {</span></span>
<span class="line"><span style="color: #F6F6F4">                </span><span style="color: #97E1F1">Text</span><span style="color: #F6F6F4">(</span><span style="color: #DEE492">&quot;</span><span style="color: #E7EE98">Healthy Foods</span><span style="color: #DEE492">&quot;</span><span style="color: #F6F6F4">)</span></span>
<span class="line"><span style="color: #F6F6F4">            }</span></span>
<span class="line cbp-line-highlight"><span style="color: #F6F6F4">            .</span><span style="color: #97E1F1">listRowBackground</span><span style="color: #F6F6F4">(Color.blue)</span></span>
<span class="line cbp-line-highlight"><span style="color: #F6F6F4">            .</span><span style="color: #97E1F1">foregroundColor</span><span style="color: #F6F6F4">(.black)</span></span>
<span class="line"></span>
<span class="line"><span style="color: #F6F6F4">            Section {</span></span>
<span class="line"><span style="color: #F6F6F4">                </span><span style="color: #97E1F1">ForEach</span><span style="color: #F6F6F4">(healthyFoods) { food </span><span style="color: #F286C4">in</span></span>
<span class="line"><span style="color: #F6F6F4">                    </span><span style="color: #97E1F1">FoodRow</span><span style="color: #F6F6F4">(</span><span style="color: #97E1F1">food</span><span style="color: #F6F6F4">: food)</span></span>
<span class="line"><span style="color: #F6F6F4">                }</span></span>
<span class="line cbp-line-highlight"><span style="color: #F6F6F4">                .</span><span style="color: #97E1F1">listRowBackground</span><span style="color: #F6F6F4">(</span></span>
<span class="line cbp-line-highlight"><span style="color: #F6F6F4">                    </span><span style="color: #97E1F1">Capsule</span><span style="color: #F6F6F4">()</span></span>
<span class="line cbp-line-highlight"><span style="color: #F6F6F4">                        .</span><span style="color: #97E1F1">fill</span><span style="color: #F6F6F4">(</span><span style="color: #97E1F1">Color</span><span style="color: #F6F6F4">(</span><span style="color: #97E1F1">white</span><span style="color: #F6F6F4">: </span><span style="color: #BF9EEE">1</span><span style="color: #F6F6F4">, </span><span style="color: #97E1F1">opacity</span><span style="color: #F6F6F4">: </span><span style="color: #BF9EEE">0.8</span><span style="color: #F6F6F4">))</span></span>
<span class="line cbp-line-highlight"><span style="color: #F6F6F4">                        .</span><span style="color: #97E1F1">padding</span><span style="color: #F6F6F4">(.vertical, </span><span style="color: #BF9EEE">2</span><span style="color: #F6F6F4">).</span><span style="color: #97E1F1">padding</span><span style="color: #F6F6F4">(.horizontal, </span><span style="color: #BF9EEE">20</span><span style="color: #F6F6F4">)</span></span>
<span class="line cbp-line-highlight"><span style="color: #F6F6F4">                )</span></span>
<span class="line cbp-line-highlight"><span style="color: #F6F6F4">                .</span><span style="color: #97E1F1">listRowSeparator</span><span style="color: #F6F6F4">(.hidden)</span></span>
<span class="line cbp-line-highlight"><span style="color: #F6F6F4">                .</span><span style="color: #97E1F1">foregroundColor</span><span style="color: #F6F6F4">(.indigo)</span></span>
<span class="line"><span style="color: #F6F6F4">            } header</span><span style="color: #F286C4">:</span><span style="color: #F6F6F4"> {</span></span>
<span class="line"><span style="color: #F6F6F4">                </span><span style="color: #97E1F1">Text</span><span style="color: #F6F6F4">(</span><span style="color: #DEE492">&quot;</span><span style="color: #E7EE98">Healthy Foods</span><span style="color: #DEE492">&quot;</span><span style="color: #F6F6F4">)</span></span>
<span class="line"><span style="color: #F6F6F4">                    .</span><span style="color: #97E1F1">font</span><span style="color: #F6F6F4">(.title)</span></span>
<span class="line"><span style="color: #F6F6F4">                    .</span><span style="color: #97E1F1">bold</span><span style="color: #F6F6F4">()</span></span>
<span class="line"><span style="color: #F6F6F4">                    .</span><span style="color: #97E1F1">foregroundColor</span><span style="color: #F6F6F4">(.white)</span></span>
<span class="line"><span style="color: #F6F6F4">                    .</span><span style="color: #97E1F1">shadow</span><span style="color: #F6F6F4">(</span><span style="color: #97E1F1">radius</span><span style="color: #F6F6F4">: </span><span style="color: #BF9EEE">5</span><span style="color: #F6F6F4">)</span></span>
<span class="line"><span style="color: #F6F6F4">            }</span></span>
<span class="line"><span style="color: #F6F6F4">            .</span><span style="color: #97E1F1">listRowInsets</span><span style="color: #F6F6F4">(.</span><span style="color: #F286C4">init</span><span style="color: #F6F6F4">(</span><span style="color: #97E1F1">top</span><span style="color: #F6F6F4">: </span><span style="color: #BF9EEE">0</span><span style="color: #F6F6F4">, </span><span style="color: #97E1F1">leading</span><span style="color: #F6F6F4">: </span><span style="color: #BF9EEE">40</span><span style="color: #F6F6F4">, </span><span style="color: #97E1F1">bottom</span><span style="color: #F6F6F4">: </span><span style="color: #BF9EEE">0</span><span style="color: #F6F6F4">, </span><span style="color: #97E1F1">trailing</span><span style="color: #F6F6F4">: </span><span style="color: #BF9EEE">40</span><span style="color: #F6F6F4">))</span></span>
<span class="line"></span>
<span class="line"><span style="color: #F6F6F4">            Section {</span></span>
<span class="line"><span style="color: #F6F6F4">                </span><span style="color: #97E1F1">ForEach</span><span style="color: #F6F6F4">(unhealthFoods) { food </span><span style="color: #F286C4">in</span></span>
<span class="line"><span style="color: #F6F6F4">                   </span><span style="color: #97E1F1">FoodRow</span><span style="color: #F6F6F4">(</span><span style="color: #97E1F1">food</span><span style="color: #F6F6F4">: food)</span></span>
<span class="line"><span style="color: #F6F6F4">                }</span></span>
<span class="line cbp-line-highlight"><span style="color: #F6F6F4">                .</span><span style="color: #97E1F1">foregroundColor</span><span style="color: #F6F6F4">(.pink)</span></span>
<span class="line cbp-line-highlight"><span style="color: #F6F6F4">                .</span><span style="color: #97E1F1">listRowInsets</span><span style="color: #F6F6F4">(.</span><span style="color: #F286C4">init</span><span style="color: #F6F6F4">(</span><span style="color: #97E1F1">top</span><span style="color: #F6F6F4">: </span><span style="color: #BF9EEE">0</span><span style="color: #F6F6F4">, </span><span style="color: #97E1F1">leading</span><span style="color: #F6F6F4">: </span><span style="color: #BF9EEE">60</span><span style="color: #F6F6F4">, </span><span style="color: #97E1F1">bottom</span><span style="color: #F6F6F4">: </span><span style="color: #BF9EEE">0</span><span style="color: #F6F6F4">, </span><span style="color: #97E1F1">trailing</span><span style="color: #F6F6F4">: </span><span style="color: #BF9EEE">60</span><span style="color: #F6F6F4">))</span></span>
<span class="line cbp-line-highlight"><span style="color: #F6F6F4">                .</span><span style="color: #97E1F1">listRowSeparatorTint</span><span style="color: #F6F6F4">(.orange)</span></span>
<span class="line"><span style="color: #F6F6F4">            } header</span><span style="color: #F286C4">:</span><span style="color: #F6F6F4"> {</span></span>
<span class="line"><span style="color: #F6F6F4">                </span><span style="color: #97E1F1">Text</span><span style="color: #F6F6F4">(</span><span style="color: #DEE492">&quot;</span><span style="color: #E7EE98">Unhealthy Foods</span><span style="color: #DEE492">&quot;</span><span style="color: #F6F6F4">)</span></span>
<span class="line"><span style="color: #F6F6F4">                    .</span><span style="color: #97E1F1">foregroundColor</span><span style="color: #F6F6F4">(.black)</span></span>
<span class="line"><span style="color: #F6F6F4">            } footer</span><span style="color: #F286C4">:</span><span style="color: #F6F6F4"> {</span></span>
<span class="line"><span style="color: #F6F6F4">                </span><span style="color: #97E1F1">Text</span><span style="color: #F6F6F4">(</span><span style="color: #DEE492">&quot;</span><span style="color: #E7EE98">You should try to avoid them and only eat them occasionally.</span><span style="color: #DEE492">&quot;</span><span style="color: #F6F6F4">)</span></span>
<span class="line"><span style="color: #F6F6F4">                    .</span><span style="color: #97E1F1">foregroundColor</span><span style="color: #F6F6F4">(.white)</span></span>
<span class="line"><span style="color: #F6F6F4">            }</span></span>
<span class="line cbp-line-highlight"><span style="color: #F6F6F4">            .</span><span style="color: #97E1F1">listRowBackground</span><span style="color: #F6F6F4">(Color.black)</span></span>
<span class="line cbp-line-highlight"><span style="color: #F6F6F4">            .</span><span style="color: #97E1F1">listSectionSeparatorTint</span><span style="color: #F6F6F4">(.yellow)</span></span>
<span class="line cbp-line-highlight"><span style="color: #F6F6F4">            .</span><span style="color: #97E1F1">headerProminence</span><span style="color: #F6F6F4">(.increased)</span></span>
<span class="line"><span style="color: #F6F6F4">        }</span></span>
<span class="line"><span style="color: #F6F6F4">        .</span><span style="color: #97E1F1">scrollContentBackground</span><span style="color: #F6F6F4">(.hidden)</span></span>
<span class="line"><span style="color: #F6F6F4">        .</span><span style="color: #97E1F1">background</span><span style="color: #F6F6F4">(</span></span>
<span class="line"><span style="color: #F6F6F4">            </span><span style="color: #97E1F1">Image</span><span style="color: #F6F6F4">(</span><span style="color: #DEE492">&quot;</span><span style="color: #E7EE98">candies</span><span style="color: #DEE492">&quot;</span><span style="color: #F6F6F4">)</span></span>
<span class="line"><span style="color: #F6F6F4">                .</span><span style="color: #97E1F1">resizable</span><span style="color: #F6F6F4">()</span></span>
<span class="line"><span style="color: #F6F6F4">                .</span><span style="color: #97E1F1">scaledToFill</span><span style="color: #F6F6F4">()</span></span>
<span class="line"><span style="color: #F6F6F4">                .</span><span style="color: #97E1F1">clipped</span><span style="color: #F6F6F4">()</span></span>
<span class="line"><span style="color: #F6F6F4">                .</span><span style="color: #97E1F1">edgesIgnoringSafeArea</span><span style="color: #F6F6F4">(.all)</span></span>
<span class="line"><span style="color: #F6F6F4">                .</span><span style="color: #97E1F1">blur</span><span style="color: #F6F6F4">(</span><span style="color: #97E1F1">radius</span><span style="color: #F6F6F4">: </span><span style="color: #BF9EEE">3</span><span style="color: #F6F6F4">)</span></span>
<span class="line"><span style="color: #F6F6F4">                .</span><span style="color: #97E1F1">overlay</span><span style="color: #F6F6F4">(Color.indigo.</span><span style="color: #97E1F1">opacity</span><span style="color: #F6F6F4">(</span><span style="color: #BF9EEE">0.2</span><span style="color: #F6F6F4">))</span></span>
<span class="line"><span style="color: #F6F6F4">        )</span></span>
<span class="line"><span style="color: #F6F6F4">        .</span><span style="color: #97E1F1">environment</span><span style="color: #F6F6F4">(\.defaultMinListHeaderHeight, </span><span style="color: #BF9EEE">45</span><span style="color: #F6F6F4">)</span></span>
<span class="line"><span style="color: #F6F6F4">        .</span><span style="color: #97E1F1">environment</span><span style="color: #F6F6F4">(\.defaultMinListRowHeight, </span><span style="color: #BF9EEE">50</span><span style="color: #F6F6F4">)</span></span>
<span class="line"><span style="color: #F6F6F4">    }</span></span>
<span class="line"><span style="color: #F6F6F4">}</span></span></code></pre></div>



<div style="height:78px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">Conclusion</h2>



<p class="wp-block-paragraph">SwiftUI 4 brings many great improvements to the <a href="https://www.swiftyplace.com/blog/swiftui-list-view-a-deep-dive-into-one-of-the-most-important-components-of-swiftui" data-type="link" data-id="https://www.swiftyplace.com/blog/swiftui-list-view-a-deep-dive-into-one-of-the-most-important-components-of-swiftui">List</a> view. You can now adjust the minimum height of a row, edge insets, section headers, and footers with ease. You also have more control over colors and backgrounds than ever before. With this tutorial, you should be able to create beautiful lists with SwiftUI. Happy coding!</p>



<p class="wp-block-paragraph">Download the project files from <u><a href="https://school.swiftyplace.com/17130/files/63e290f1f287c_1675792625_liststylingproject.zip" target="_blank" rel="noopener"> here </a><strong><a href="https://school.swiftyplace.com/17130/files/63e290f1f287c_1675792625_liststylingproject.zip" target="_blank" rel="noopener"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2b07.png" alt="⬇" class="wp-smiley" style="height: 1em; max-height: 1em;" /></a></strong><br></u></p>
<p>The post <a rel="nofollow" href="https://www.swiftyplace.com/blog/customise-list-view-appearance-in-swiftui-examples-beyond-the-default-stylings">How to Customise the SwiftUI List Style and Background Color</a> appeared first on <a rel="nofollow" href="https://www.swiftyplace.com">swiftyplace</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.swiftyplace.com/blog/customise-list-view-appearance-in-swiftui-examples-beyond-the-default-stylings/feed</wfw:commentRss>
			<slash:comments>6</slash:comments>
		
		
			</item>
	</channel>
</rss>

<!--
Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/?utm_source=w3tc&utm_medium=footer_comment&utm_campaign=free_plugin

Page Caching using Disk: Enhanced 

Served from: www.swiftyplace.com @ 2026-06-24 02:14:27 by W3 Total Cache
-->