0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

[Xcode 14] SwiftUI の List に背景色を付ける

Posted at

Xcode 14 までは、以下のようなコードで List に背景色を付けていたと思います。

import SwiftUI

struct ContentView: View {

    init() {
        UITableView.appearance().backgroundColor = .clear
    }

    var body: some View {
        List {
            Text("コンテンツ1")
            Text("コンテンツ2")
            Text("コンテンツ3")
        }
        .background(.red)
    }
}

Xcode 14 からは、上記のコードでは背景色が変わらず、以下のようなコードを書く必要があります(.scrollContentBackground(.hidden) を利用)。

import SwiftUI

struct ContentView: View {

-   init() {
-       UITableView.appearance().backgroundColor = .clear
-   }
-
    var body: some View {
        List {
            Text("コンテンツ1")
            Text("コンテンツ2")
            Text("コンテンツ3")
        }
        .background(.red)
+       .scrollContentBackground(.hidden)
    }
}

これは、List の裏で UITableView が利用されているか、UICollectionView が利用されているかの違いのようです。

興味本位で、以下のコードを試してみましたが、背景色は変わりませんでした。

import SwiftUI

struct ContentView: View {

    init() {
-       UITableView.appearance().backgroundColor = .clear
+       UICollectionView.appearance().backgroundColor = .clear
    }

    var body: some View {
        List {
            Text("コンテンツ1")
            Text("コンテンツ2")
            Text("コンテンツ3")
        }
        .background(.red)
    }
}

今回は、開発中のアプリで Xcode 14 に移行後、List の背景色がおかしくなったので、備忘録的に書きました。では、また次の記事で!

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?