У меня есть следующий код, пытающийся создать панель инструментов с двумя строками, как я видел из ios safari 26, но проблема в том, что структура инструментов на самом деле не адаптируется к цвету фона, она остается темной, когда на темном фоне. Я также пытался использовать .buttonstyle (.glass) , который также создает капсульный пузырь вокруг каждой кнопки. Будьте адаптивны к фоновому содержанию Scrollview.
У меня есть следующий код, пытающийся создать панель инструментов с двумя строками, как я видел из ios safari 26, но проблема в том, что структура инструментов на самом деле не адаптируется к цвету фона, она остается темной, когда на темном фоне. Я также пытался использовать .buttonstyle (.glass) , который также создает капсульный пузырь вокруг каждой кнопки. Будьте адаптивны к фоновому содержанию Scrollview.[code]// MARK: - Main issue: Toolbar Button, but not adaptive to background content color HStack(spacing: 20) { Image(systemName: "house.fill") .font(.system(size:36)) .frame(width: 40, height: 40) Image(systemName: "text.magnifyingglass") .font(.system(size:36)) .frame(width: 40, height: 40) Image(systemName: "plus.circle.fill") .font(.system(size:36)) .frame(width: 40, height: 40) } < /code> import SwiftUI
@main struct GlassToolbarDemoApp: App { var body: some Scene { WindowGroup { DemoView() } } }
struct DemoView: View { @State private var query: String = "" @Namespace private var namespace
var body: some View { ZStack { SampleBackgroundScroll() .ignoresSafeArea() // let content run under the glass for a better effect } // Pin our two-row glass toolbar to the TOP. Change to .bottom to make it a bottom toolbar. .safeAreaInset(edge: .bottom) { VStack(spacing: 8) { GlassEffectContainer{ HStack(spacing: 10) { // Search field HStack(spacing: 8) { Image(systemName: "magnifyingglass") .foregroundStyle(.secondary) TextField("Search…", text: $query) .textInputAutocapitalization(.never) } .padding(.horizontal, 12) .padding(.vertical, 10) .background( RoundedRectangle(cornerRadius: 14, style: .continuous) .fill(.thinMaterial) ) } .frame(maxWidth: .infinity, alignment: .leading) .padding(.horizontal, 2) .glassEffect() .glassEffectUnion(id: "toolbar", namespace: namespace) Divider().opacity(0.25)
// MAIN PROBLEM: How do we make the foreground color of these images adaptive // like a buttonStyle(.glass) but without the bubble around them. HStack(spacing: 20) { Image(systemName: "house.fill") .font(.system(size:36)) .frame(width: 40, height: 40) Image(systemName: "text.magnifyingglass") .font(.system(size:36)) .frame(width: 40, height: 40) Image(systemName: "plus.circle.fill") .font(.system(size:36)) .frame(width: 40, height: 40) } }