如何使导航栏上方的文本背景半透明,使其看起来像文本和导航栏是同一个对象?
VStack(spacing: 0) {
Text("Test")
.padding(.top, 9.5)
.padding(.bottom, 8)
.frame(minWidth: 0, maxWidth: .infinity)
.background(Color.gray) // I used a custom color set in the screenshot
.font(.footnote)
NavigationView {
List {
Text("Name")
Text("Name")
Text("Name")
} .listStyle(GroupedListStyle())
.navigationBarTitle(Text(""), displayMode: .inline)
.navigationBarBackButtonHidden(true)
.navigationBarItems(
leading:
Button("Cancel") {
// self.presentationMode.wrappedValue.dismiss()
},
trailing:
Button("Done") {
}.disabled(true)
)
}
}
Run Code Online (Sandbox Code Playgroud)
如何在不更改 UI 的情况下增加可以触发按钮的区域?
这是我的代码
struct ContentView: View {
var body: some View {
NavigationView {
Text("Text")
.navigationBarTitle(Text("Title"))
.navigationBarItems(
leading:
Button(action: { print("add") }) {
Image(systemName: SFSymbolName.plus)
.font(.system(size: 18))
}
)
}
}
}
Run Code Online (Sandbox Code Playgroud) 我想让列表中的图像与屏幕边缘齐平,但如果添加.listRowInsets(EdgeInsets())
到图像中,则什么也不会发生。如果我将相同的代码添加到 VStack,列表的格式就会被破坏。
List {
ForEach(users, id: \.id) { User in
VStack(alignment: .leading) {
Image(User.image)
.resizable()
.scaledToFill()
Text(User.name).font(.body)
}
}
} .listStyle(GroupedListStyle())
Run Code Online (Sandbox Code Playgroud)