如何解决如何使自定义导航栏背景颜色超出 SwiftUI 中的安全区域
我实现了一个自定义导航栏,它只是一个带有标题文本和关闭视图的箭头的视图。我只希望导航栏的背景颜色超出顶部安全区域,而内容遵守安全区域约束
struct CustomNavigationBar: View {
@Environment(\.presentationMode) var presentationMode
let title: String
var body: some View {
HStack {
Button(action: {
presentationMode.wrappedValue.dismiss()
},label: {
Image(systemName: "chevron.left")
.font(.title2)
.foregroundColor(Globals.Color.background)
})
Spacer()
Text(title)
.font(.title2)
.bold()
.foregroundColor(Globals.Color.background)
Spacer()
}
.padding()
.background(Globals.Color.crimson)
}
}
var body: some View {
ZStack {
vstack {
CustomNavigationBar(title: "Sample Title")
Spacer()
}
}
}
下面我附上了当前视图的屏幕截图:
解决方法
你应该在深红色背景上放一个 ignoresSafeArea
。
struct CustomNavigationBar: View {
@Environment(\.presentationMode) var presentationMode
let title: String
var body: some View {
HStack {
Button(action: {
presentationMode.wrappedValue.dismiss()
},label: {
Image(systemName: "chevron.left")
.font(.title2)
.foregroundColor(Color.white)
})
Spacer()
Text(title)
.font(.title2)
.bold()
.foregroundColor(Color.white)
Spacer()
}
.padding()
.background(Color.red.ignoresSafeArea()) /// here!
}
}
结果:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。