gpt4 book ai didi

SwiftUI 导航栏颜色

转载 作者:行者123 更新时间:2023-11-28 13:30:49 31 4
gpt4 key购买 nike

我正在尝试构建主/详细信息类型示例应用程序,并且正在努力让 NavigationBar UI 在我的详细信息 View 中正常工作。我正在处理的 View 的代码如下:

struct JobDetailView : View {

var jobDetails: JobDetails

var body: some View {

Form {

Section(header: Text("General")) {
HStack {
Text("Job Name")
Spacer()
Text(jobDetails.jobName)
.multilineTextAlignment(.trailing)
}

HStack {
Text("Hourly Rate")
Spacer()
Text(TextFormatters().currencyString(amount: jobDetails.hourlyRateBasic!))
.multilineTextAlignment(.trailing)
}
}

} .padding(.top)
.navigationBarTitle(Text(jobDetails.jobName))
}
}

.padding(.top) 的原因是在向上滚动时阻止 Form 与导航栏重叠。

导航栏上的白色背景部分是我的问题(第一张图片),我希望它与 UI 的整体风格保持一致,我希望发生的情况如第二张图片所示。

我尝试添加前景色/背景色和 View 来改变这种颜色,但无济于事。我也不愿意强制为 NagivationBar 设置颜色,因为这需要进一步配置才能与暗模式一起使用。

Current view when running application.

Expected view.

最佳答案

目前还没有可用的 (SwiftUI) API 来执行此操作(测试版 5)。

但我们可以使用 UINavigationBar.appearance(),如:

UINavigationBar.appearance().backgroundColor = .clear

Full Code

import SwiftUI

struct JobDetailView: View {

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

var body: some View {
NavigationView {
Form {
Section(header: Text("General")) {
HStack {
Text("Job Name")
Spacer()
Text("Scientist")
.multilineTextAlignment(.trailing)
}
HStack {
Text("Hourly Rate")
Spacer()
Text("$ 1.00")
.multilineTextAlignment(.trailing)
}
}

}
.navigationBarTitle("Scientist")
.navigationBarHidden(false)
}
}
}

#if DEBUG
struct JobDetailView_Previews: PreviewProvider {
static var previews: some View {
JobDetailView()
}
}
#endif

Result

result

Dark Mode Result

result dark

关于SwiftUI 导航栏颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57365747/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com