Hi!,
Ich machen hier mal einen Thread auf, in dem ich Probleme ansprechen will, die mir im Zusammenhang mit iOS 16 aufgefallen sind. Sofern ich es schon gelöst habe, kommt die Lösung natürlich gleich mit dazu. Ich lade gerne andere ein, hier ebenfalls Probleme zu posten und einen Sammelthread draus zu machen.
List und ScrollView mit durchsichtigen Hintergrund
Das erste Problem betrifft List oder ScrollView in SwiftUI, die man durchsichtig machen möchte. Bisher hat man dazu mit
In SwiftUI 4 und iOS 16 funktioniert das nicht mehr und stattdessen ist der Modifier
Alles anzeigen
So kann der dann einfach verwendet werden:
Vielleicht hilft es ja jemand, der ein ähnliches Problem hat.
Ich machen hier mal einen Thread auf, in dem ich Probleme ansprechen will, die mir im Zusammenhang mit iOS 16 aufgefallen sind. Sofern ich es schon gelöst habe, kommt die Lösung natürlich gleich mit dazu. Ich lade gerne andere ein, hier ebenfalls Probleme zu posten und einen Sammelthread draus zu machen.
List und ScrollView mit durchsichtigen Hintergrund
Das erste Problem betrifft List oder ScrollView in SwiftUI, die man durchsichtig machen möchte. Bisher hat man dazu mit
init()
oder onAppear()
folgendes angegeben:UITableView.appearance().backgroundColor = .clear /* bzw. UIScrollView */
In SwiftUI 4 und iOS 16 funktioniert das nicht mehr und stattdessen ist der Modifier
scrollContentBackground
dazugekommen. Um das für iOS 15 und 16 halbwegs einfach zu gestalten, habe ich folgenden Modifier gebaut, der je nach iOS-Version das passende aufruft:Quellcode: ClearBackgroundModifier.swift
- import SwiftUI
- struct ClearBackgroundModifier: ViewModifier {
- @ViewBuilder
- func body(content: Content) -> some View {
- if #available(iOS 16.0, *) {
- content
- .scrollContentBackground(.hidden)
- } else {
- content
- .onAppear() {
- UITableView.appearance().backgroundColor = .clear
- UIScrollView.appearance().backgroundColor = .clear
- }
- }
- }
- }
- extension View {
- func clearBackground() -> some View {
- modifier(ClearBackgroundModifier())
- }
- }
Vielleicht hilft es ja jemand, der ein ähnliches Problem hat.
So Long, and Thanks for All the Fish.